在父ui:repeat中为p:selectBooleanButton触发侦听器,但是内部/子ui:repeat没有触发p:selectBooleanButton的侦听器。
我们不能使用嵌套表格。任何建议。
<h:form prependId="false">
<ui:repeat value="#{xBean.sectionsList}" var="sectionItem">
<p:fieldset>
<p:selectBooleanButton onLabel="ON" offLabel="OFF" value="#{sectionItem.checked}">
<p:ajax listener="#{xBean.selectSection}"/>
</p:selectBooleanButton> :
<ui:repeat value="#{sectionItem.sectionOptionsList}" var="sectionOptionItem">
<p:selectBooleanButton onLabel="ON" offLabel="OFF" value="#{sectionOptionItem.checked}">
<p:ajax listener="#{xBean.selectSectionOption}"/>
</p:selectBooleanButton>
</ui:repeat>
</p:fieldset>
</ui:repeat>
</h:form>
答案 0 :(得分:2)
<ui:repeat>
是一个视图渲染时间标记。因此,它实际存在于JSF组件树中,并根据需要迭代该值生成其HTML输出的次数。
换句话说,它们(p:selectBooleanButton)需要在视图构建时而不是视图渲染时准备。
JSTL <c:forEach>
是一个视图构建时标记。它将在JSF组件树中物理生成多个组件。