13

のようなものを使用する場合

<h:panelGrid columns="1">
    <ui:repeat var="o" value="#{mybean.list}">
        <h:outputText value="#{o.text}"/>
    </ui:repeat>
</h:panelGrid>

たとえば、10個のリストエントリを使用すると、1行しか取得できません。たとえば、1つのtrで1つのtdを取得しますが、c:forEachを使用すると10を取得します(ただし、c:forEachは実際には悪であり、ajaxですべてを台無しにします)

Mojarra 1.2 を使用しています。これは、MyFaces 実装には存在しない典型的な Mojarra バグですか? Mojarra リリースの 2.x では消えますか?

4

1 に答える 1

33

出力は完全に期待どおりであり、指定されています。は<ui:repeat>レンダリング時間タグであり、 のようなビュー ビルド時間タグではありません<c:forEach>。ビューを構築した後、 のようにn 個のコンポーネントではなく<h:panelGrid>、1 つの子コンポーネント (<ui:repeat>それ自体) になります。 <h:outputText><c:forEach>

<h:dataTable>代わりにが必要です。まさにこの目的のために設計されています。

<h:dataTable var="o" value="#{mybean.list}">
    <h:column>
        <h:outputText value="#{o.text}"/>
    </h:column>
</h:dataTable>

以下も参照してください。

于 2012-01-20T17:56:35.393 に答える