selectBooleanCheckbox ajax 事件触发,但监听器从未执行。如果我删除 c:forEach 并只调用列表中的第一个它就可以了。
<p:selectBooleanCheckbox value="#{Controller.graphFilter.get(0).checked}" >
<p:ajax listener="#{Controller.addMessage}" />
</p:selectBooleanCheckbox>
注意:graphFilter 是一个列表,其中容器具有用于检查和描述的集合/获取。控制器是一个视图范围的托管 bean。addMessage 公共函数,用于发出咆哮的消息。一切都是相同的形式。
<h:form id="form" prependId="false">
<p:growl id="growl" showDetail="true"/>
<c:forEach items="#{Controller.graphFilter}" var="Gc">
<h:outputText value="#{Gc.description}" />
<p:selectBooleanCheckbox value="#{Gc.checked}" >
<p:ajax listener="#{Controller.addMessage}"/>
</p:selectBooleanCheckbox>
</c:forEach>
</h:form>