无论我使用什么(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