jsf
Ajax-Integration
Suche…
Aktualisieren Sie die Ansicht teilweise
Macht eine Ajax-Anfrage und aktualisiert nur einen Teil der Ansicht.
Bean.java
@ManagedBean
@ViewScoped
public class Bean {
public Date getCurrentDate() {
return new Date();
}
}
sample.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head />
<h:body>
<h:form>
<h:commandButton value="Execute ajax">
<f:ajax render="output" />
</h:commandButton>
<p>
<h:outputText id="output" value="Ajax date: #{bean.currentDate}" />
</p>
<p>
<h:outputText id="output2" value="Non-Ajax date: #{bean.currentDate}" />
</p>
</h:form>
</h:body>
</html>
Senden Sie Formularteile und hören Sie die Anfrage ab
Macht eine Anfrage, die nur einen Teil des Formulars sendet. Der Wert von text1 ist festgelegt, aber nicht text2 , wie der Listener angibt.
Bean.java
@ManagedBean
@ViewScoped
public class Bean {
private String text1;
private String text2;
public String getText1() {
return text1;
}
public void setText1(String text1) {
this.text1 = text1;
}
public String getText2() {
return text2;
}
public void setText2(String text2) {
this.text2 = text2;
}
public void listener() {
System.out.println("values: " + text1 + " " + text2);
}
}
sample.xhtml
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head />
<h:body>
<h:form>
<h:inputText id="my_input" value="#{bean.text1}" />
<h:inputText value="#{bean.text2}" />
<h:commandButton value="Execute ajax">
<f:ajax execute="@this my_input" listener="#{bean.listener}" />
</h:commandButton>
</h:form>
</h:body>
</html>
Ajax auf Javascript Ereignis
Das Datum wird aktualisiert, wenn der Benutzer in das Eingabefeld eingibt:
Bean.java
@ManagedBean
@ViewScoped
public class Bean {
public Date getCurrentDate(){
return new Date();
}
}
sample.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head />
<h:body>
<h:form>
<h:inputText>
<f:ajax event="keyup" render="output" />
</h:inputText>
<p>
<h:outputText id="output" value="Ajax date: #{bean.currentDate}" />
</p>
</h:form>
</h:body>
</html>
Verzögern
Führt die Anforderungen mit der angegebenen Verzögerung in Millisekunden aus. Das heißt, wenn eine nachfolgende Anforderung nach der Warteschlange der vorherigen ausgeführt wird, wird die erste Anforderung übersprungen. Die Funktion ist ab JSF 2.2 verfügbar:
Bean.java
@ManagedBean
@ViewScoped
public class Bean {
public Date getCurrentDate(){
return new Date();
}
}
sample.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head />
<h:body>
<h:form>
<h:inputText>
<f:ajax event="keyup" render="output" delay="2000" />
</h:inputText>
<p>
<h:outputText id="output" value="Ajax date: #{bean.currentDate}" />
</p>
</h:form>
</h:body>
</html>
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow