ui:repeat和h:panelGrid

Tos*_*kan 12 jsf facelets mojarra

使用类似的东西时

<h:panelGrid columns="1">
    <ui:repeat var="o" value="#{mybean.list}">
        <h:outputText value="#{o.text}"/>
    </ui:repeat>
</h:panelGrid>
Run Code Online (Sandbox Code Playgroud)

让我们说10个列表条目我只得到1行例如:一个tr与1 td而当我使用c:forEach我得到10(但是c:forEach实际上是邪恶的,它用ajax弄乱了一切)

我使用mojarra 1.2 - 这是一个典型的Mojarra bug,它在MyFaces实现中不存在吗?它会在Mojarra版本的2.x中消失吗?

Bal*_*usC 32

输出完全按预期和指定.这<ui:repeat>是一个渲染时间标记,而不是视图构建时标记<c:forEach>.构建视图后,<h:panelGrid>最终得到1个子组件(<ui:repeat>自身),而不是像n <h:outputText>那样的n个组件<c:forEach>.

你需要一个<h:dataTable>代替.它的设计正是为了这个目的.

<h:dataTable var="o" value="#{mybean.list}">
    <h:column>
        <h:outputText value="#{o.text}"/>
    </h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)

也可以看看: