使用
之类的东西时<h:panelGrid columns="1">
<ui:repeat var="o" value="#{mybean.list}">
<h:outputText value="#{o.text}"/>
</ui:repeat>
</h:panelGrid>
让我们说10个列表条目我只得到1行例如:一个tr与1 td,而当我使用c:forEach我得到10(但是c:forEach实际上是邪恶的,它用ajax弄乱了所有东西)
我使用mojarra 1.2 - 这是一个典型的Mojarra错误,它在MyFaces实现中不存在吗?它会在Mojarra版本的2.x中消失吗?
答案 0 :(得分:32)
输出完全符合预期和指定。 <ui:repeat>
是渲染时标记,而不是<c:forEach>
之类的视图构建时标记。构建视图后,<h:panelGrid>
最终会有1个子组件(<ui:repeat>
本身),而不是 n <h:outputText>
组件,就像<c:forEach>
一样
您需要<h:dataTable>
。它的设计正是为了这个目的。
<h:dataTable var="o" value="#{mybean.list}">
<h:column>
<h:outputText value="#{o.text}"/>
</h:column>
</h:dataTable>