jsf
Ajax-integratie
Zoeken…
Werk de weergave gedeeltelijk bij
Hiermee wordt een Ajax-verzoek gedaan en wordt slechts een deel van de weergave bijgewerkt.
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>
Stuur formulieronderdelen en luister naar het verzoek
Verzoekt slechts om een deel van het formulier te verzenden. De waarde text1 is ingesteld, maar niet text2 , zoals de luisteraar aangeeft.
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 op javascript-evenement
De datum wordt bijgewerkt wanneer de gebruiker in het invoerveld typt:
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>
Vertraging
Voert de aanvragen uit met de opgegeven vertraging in milliseconden, wat betekent dat als een volgend verzoek gebeurt nadat het vorige in de wachtrij is geplaatst, het eerste wordt overgeslagen. De functie is beschikbaar vanaf JSF 2.2:
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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow