<rich: dataTable> из listOfMaps

У меня есть SessionScoped бин, который имеет список карт. Я пытаюсь получить <rich:dataTable> производится с использованием <a4j:repeat>,

Список карт заполняется правильно, хотя вывод dataTable отсутствует. Читая статьи о переполнении стека, я думаю, что моя проблема может возникать из-за проблем жизненного цикла или моего понимания новичком jsf с richfaces.

Использование: Tomcat 7, JSF 2.1x - Mojarra, Richfaces 4.x

Вот что я имею до сих пор;

<rich:dataTable value="#{myBean.myMap}" var="map">

    <a4j:repeat value="#{myBean.myMap[0].keySet().toArray()}" var="key">
        #{map[key]}
    </a4j:repeat>

</rich:dataTable>

Если бы кто-то мог указать мне правильное направление, помощь будет принята с благодарностью!

Ответ:

Как указано ниже, решение состоит в том, чтобы вместо этого использовать <c:forEach> и использовать <rich:columns>,

Решение:

<rich:dataTable value="#{queryBean.test}" var="map">
    <c:forEach items="#{queryBean.test[0].keySet().toArray()}" var="key">

        <rich:column style="text-align:left; width:auto;">
            <f:facet name="header">
                <h:outputText value="#{key}" />
            </f:facet>
            <h:outputText value="#{map[key]}" />
        </rich:column>

    </c:forEach>
</rich:dataTable>

1 ответ

Решение

Прежде всего <rich:dataTable> должен содержать столбцы - <rich:column>

Предполагая, что вы хотите иметь динамическую таблицу (количество столбцов в зависимости от длины карты), вам придется использовать <c:forEach> вместо <a4j:repeat>, Я ответил на вопрос об этом некоторое время назад, посмотрите.

Другие вопросы по тегам