第一次检查h:selectBooleanCheckBox
时,侦听器不会被触发。 再次检查它,确实会触发侦听器。 我还尝试为h:selectBooleanCheckBox
做一个valueChangeListener="selectRoleCheckboxChangeListener"
属性,结果相同。 它将在第二次和后续点击时工作。 我想在第一次点击时就有这个火。 想法? 谢谢
<rich:dataTable id="roleTable"
value="#{roleBean.displayedRoles}"
var="roleItem"
>
<rich:column
id="selectRoleCheckboxColumn"
>
<f:facet name="header">Select Role</f:facet>
<h:selectBooleanCheckbox
id="selectRoleCheckbox"
value="#{roleItem.selectRole}"
binding="#{roleBean.selectRoleCheckbox}"
>
<a4j:ajax
event="click"
listener="#{authorizationBean.selectRoleCheckboxListener}"
/>
</h:selectBooleanCheckbox>
</rich:column>
</rich:dataTable>
我遇到了同样的问题。我找到了上述问题的解决方案。
问题是您的组件没有 id,或者设置的对象或值没有被反映。另一个问题是内在形式。
解决方案将是...为所有组件设置 id,如果值未反映在 ajax 请求中,则呈现为其设置值的组件。窗体内不要包含窗体。
希望它应该有效...
这是一个非常古老的帖子。仍然可能对某人有用。
试试这个
<h:selectBooleanCheckbox id="selectRoleCheckbox" value="#{roleItem.selectRole}"
<a4j:support event="onchange" action="#{authorizationBean.selectRoleCheckboxListener}"/>
</h:selectBooleanCheckbox>
希望它有效..