5

リスナーは親 ui:repeat の p:selectBooleanButton に対してトリガーされますが、p:selectBooleanButton のリスナーは内部/子 ui:repeat に対してトリガーされません。

ネストされたフォームは使用できません。助言がありますか。

<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>
4

1 に答える 1

2

<ui:repeat>、ビューのレンダリング時間タグです。したがって、JSF コンポーネント ツリーに物理的に存在し、値を反復処理するのに必要な回数だけ HTML 出力を生成します。

つまり、ビューのレンダリング時ではなく、ビューのビルド時に they(p:selectBooleanButton) を準備する必要があります。

JSTL<c:forEach>はビューのビルド時間タグです。JSF コンポーネント ツリーに複数のコンポーネントを物理的に生成します。

于 2013-04-24T12:11:04.300 に答える