<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>
, Я ответил на вопрос об этом некоторое время назад, посмотрите.