0

固定数の列でpanelGridをレンダリングしたいのですが、要素はリストからロードされます。コードは次のようになります。

<h:panelGrid columns="3">
    <h:outputText value="Header 1"/>
    <h:outputText value="Header 2"/>
    <h:outputText value="Header 3"/>

    <ui:repeat value="#{bean.collection}" var="obj">
        <p:panel>
            <h:outputText value="#{obj.value}"/>
        </p:panel>
    </ui:repeat>
</p:panelGrid>

問題は、すべてのパネルがpanelGridによって生成された最初のTDで囲まれているため、このコードが期待どおりにレンダリングされないことです。3要素ごとに行を分割する必要があります。すべての繰り返しブロックがレンダリングの前に実行されているようです。私はこの振る舞いを得ることができると確信しています。私が間違っているのは何ですか?

ありがとう

4

1 に答える 1

1

ui:repeatはコンポーネントであり、コンポーネントツリーの一部です。c:forEach計画しているものを作成するには、代わりにタグハンドラーを使用してみてください。

<c:forEach items="#{bean.collection}" var="obj">
  <p:panel>
    <h:outputText value="#{obj.value}"/>
  </p:panel>
</c:forEach>
于 2013-01-26T13:05:03.747 に答える