Jsf 2 来自listOfMaps的

Jsf 2 来自listOfMaps的,jsf-2,richfaces,ajax4jsf,richdatatable,Jsf 2,Richfaces,Ajax4jsf,Richdatatable,我有一个SessionScoped bean,它有一个映射列表。我正试图获得一个生产使用 映射列表正在正确填充,尽管没有数据表输出。通过阅读有关堆栈溢出的文章,我认为我的问题可能是由于生命周期问题或我对jsf与richfaces的新手理解造成的 使用:Tomcat7、JSF2.1x-Mojarra、RichFaces4.x 这是我到目前为止所拥有的 <rich:dataTable value="#{myBean.myMap}" var="map"> <a4j:repe

我有一个SessionScoped bean,它有一个映射列表。我正试图获得一个生产使用

映射列表正在正确填充,尽管没有数据表输出。通过阅读有关堆栈溢出的文章,我认为我的问题可能是由于生命周期问题或我对jsf与richfaces的新手理解造成的

使用:Tomcat7、JSF2.1x-Mojarra、RichFaces4.x

这是我到目前为止所拥有的

<rich:dataTable value="#{myBean.myMap}" var="map">

    <a4j:repeat value="#{myBean.myMap[0].keySet().toArray()}" var="key">
        #{map[key]}
    </a4j:repeat>

</rich:dataTable>
如果有人能为我指出正确的方向,我将不胜感激

答复:

如下文所述,解决方案是改用和使用

解决方案:

首先必须包含列-


假设您希望动态表中的列数基于地图的长度,您将不得不使用,而不是。

感谢您的反馈,这正确地解决了我的问题。我已经看过了,但听到了是为了避免它。一般来说,你可能应该这样做,但其他任何一个都不会在这种情况下起作用。可能的重复是我读过的帖子之一。现在我重读了一遍,我觉得没有必要提出我的问题
<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>