マップのリストを持つSessionScoped
Bean があります。<rich:dataTable>
を使用して生成しようとしてい<a4j:repeat>
ます。
dataTable 出力はありませんが、マップのリストは正しく設定されています。スタックオーバーフローに関する記事を読むと、ライフサイクルの問題、またはリッチフェイスを使用したjsfの初心者の理解が原因で問題が発生している可能性があると思います。
使用: 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>