UI: повторить и H: PanelGrid - PullRequest
       31

UI: повторить и H: PanelGrid

12 голосов
/ 20 января 2012

При использовании чего-то вроде

<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? Он исчезнет в 2.x выпусков Mojarra?

1 Ответ

32 голосов
/ 20 января 2012

Выход полностью соответствует ожидаемому и указанному.<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>

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...