13

当使用类似的东西时

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

假设有 10 个列表条目,我只得到 1 行,例如:一个带有 1 个 td 的 tr,而当我使用 c:forEach 时,我得到 10 个(但 c:forEach 实际上是邪恶的,它用 ajax 搞砸了一切)

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

4

1 回答 1

33

输出完全符合预期和指定。这<ui:repeat>是一个渲染时间标签,而不是像<c:forEach>. 构建视图后,<h:panelGrid>以 1 个子组件(<ui:repeat>本身)结束,而不是像 with 那样具有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>

也可以看看:

于 2012-01-20T17:56:35.393 回答