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 回答