listOfMaps </rich:datatable>中的<rich:datatable>

时间:2013-05-14 10:37:48

标签: jsf-2 richfaces ajax4jsf richdatatable

我有一个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>

1 个答案:

答案 0 :(得分:0)

首先,<rich:dataTable>必须包含列 - <rich:column>

假设您想拥有动态表格(基于地图长度的列数),您必须使用<c:forEach>而不是<a4j:repeat>。我刚才回答了一个问题take a look