我有一个SessionScoped
bean,它有一个地图列表。我正在尝试使用<rich:dataTable>
生成<a4j:repeat>
。
虽然没有dataTable输出,但正确填充了地图列表。从阅读关于堆栈溢出的文章,我认为我的问题可能是由于生命周期问题或我对jsf with 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>
答案 0 :(得分:0)
首先,<rich:dataTable>
必须包含列 - <rich:column>
假设您想拥有动态表格(基于地图长度的列数),您必须使用<c:forEach>
而不是<a4j:repeat>
。我刚才回答了一个问题take a look。