Ответ 1
Вы можете добиться этого со стандартными компонентами JSF, используя <h:panelGrid>
, где <c:forEach>
используется для генерации ячеек в течение времени сборки представления. <ui:repeat>
не будет работать так, как это выполняется во время просмотра рендеринга.
<h:panelGrid columns="5">
<c:forEach items="#{bean.items}" var="item">
<h:panelGroup>
<h:outputText value="#{item.value}" />
</h:panelGroup>
</c:forEach>
</h:panelGrid>
Что касается библиотек компонентов, я ничего не вижу в витрине OpenFaces, но у PrimeFaces есть <p:dataGrid>
для этой цели даже с поддержкой разбивки на страницы.
<p:dataGrid columns="5" value="#{bean.items}" var="item">
<p:column>
<h:outputText value="#{item.value}" />
</p:column>
</p:dataGrid>