1

マップのリストを持つSessionScopedBean があります。<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>
4

1 に答える 1

0

まず、<rich:dataTable>列を含める必要があります-<rich:column>

動的テーブル (マップの長さに基づく列の数) が必要であると仮定すると、 の<c:forEach>代わりに使用する必要があり<a4j:repeat>ます。これについては、以前に質問に回答しましたので、ご覧ください

于 2013-05-14T11:40:29.920 に答える