2013-05-14 8 views
1

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

Список карт заполняется правильно, хотя нет вывода 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

Возможный дубликат [Динамические столбцы с богатыми слоями 4] (http://stackoverflow.com/questions/13835552/dynamic-columns-with-richfaces-4) – skuntsel

+0

Это был один из сообщений, которые я прочитал. Теперь, когда я перечитаю его, я не вижу необходимости в моем вопросе –

ответ

0

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

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

+0

Спасибо за отзыв, это правильно разрешило мою проблему. Я посмотрел на , но слышал, чтобы избежать этого. –

+0

Вероятно, вам, в общем, должно быть, но ни один из других ('', '') будет работать в этом случае. – Makhiel

 Смежные вопросы

  • Нет связанных вопросов^_^