無論我使用什麼(jsf ajax,bootsfaces,primefaces),複選框都會在第二次單擊時調用bean方法。我做了很多研究,試圖從omnifaces中使用fixviewstate,沒有任何工作。只有第二次點擊纔會觸發bean方法,而不是第一次。 這裏是primefaces一個例子:JSF複選框僅在第二次點擊時調用bean方法
<h:form id="myformexample">
<b:row>
<b:column colSm="12">
<p:selectBooleanCheckbox id="value2zz" value="#{selectedEmployeeDayBean.morningActive}">
<p:ajax update="mypane" listener="#{selectedEmployeeDayBean.clickMorning()}" />
</p:selectBooleanCheckbox>
</b:column>
</b:row>
<h:panelGroup id="mypane">
<b:row>
<b:column colSm="12">
<h:outputText value="#{selectedEmployeeDayBean.morningActive}"/>
</b:column>
</b:row>
</h:panelGroup>
</h:form>
我支持bean的方法:
public boolean isMorningActive() {
return morningActive;
}
public void setMorningActive(boolean morningActive) {
this.morningActive = morningActive;
}
public void clickMorning(){
this.morningActive = !this.morningActive;
}
我使用JSF 2.2 javaEE8,primefaces6.0 bootsfaces1.0,部署在wildfly(JBoss的)10.0
我該怎麼做?謝謝
你測試用的斷點或結果在瀏覽器中調用? 您的監聽器將使用同一回調發送的值更改爲以前的值。複選框爲空,您單擊,jquery選中框,ajax發送「true」,並且您的監聽器將其更改爲false,單擊前的值。 – Holger
Java EE 8仍在進行中。 – Tiny