我想使用固定数量的列渲染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个元素有一个行中断。似乎所有重复块都在渲染之前执行。我相信我可以获得这种行为。我做错了什么?
由于
答案 0 :(得分:1)
ui:repeat
是一个组件,它是组件树的一部分。要创建您计划的内容,请尝试使用代码处理程序c:forEach
。
<c:forEach items="#{bean.collection}" var="obj">
<p:panel>
<h:outputText value="#{obj.value}"/>
</p:panel>
</c:forEach>