テーブルのリストを動的に作成する必要があります。これらのそれぞれには、可変数の列があります (行は固定されています)。
これを実行するには、最初に : を入れて<p:panelGrid>
、<ui:repeat>
テーブルのリストを正しく作成しました。
次に、列を動的に生成するために、 an <ui:repeat>
または a の 両方を の<c:forEach>
中に入れてみました<p:panelGrid>
。その結果、行は取得されません。
ここに最小限の例を書きました。beantestBackingBean
で、 variable を定義 (および初期化) しましたArrayList<ArrayList<String>> tables
。これは、期待される結果を生成しない xhtml です。
<ui:repeat var="table" value="#{testBackingBean.tables}">
<p:panelGrid>
<f:facet name="header">
<p:row>
<p:column >header of #{table}</p:column>
</p:row>
</f:facet>
<p:row>
<c:forEach var="row" items="${table}">
<p:column>#{row}</p:column>
</c:forEach>
</p:row>
</p:panelGrid>
</ui:repeat>
注目すべきは、ヘッダー行が正しく#{table}
文字列に変換されることです。問題は、データの行が表示されないことです。
また、すべての<table>
代わりにを使用すると、期待どおりに機能します。<p:panelGrid>
また、 と のさまざまな順列を試し<c:forEach>
まし<ui:repeat>
たが、成功しませんでした。
では、(素数面を使用して) より多くのテーブルを動的に生成し、動的な数の列を設定するにはどうすればよいでしょうか?
ありがとう!
編集: two を使用したいのです<c:forEach>
が、1つだけでも<c:forEach>
空の結果が得られます。実際、次のxhtmlを試してみると:
<c:forEach items="${testBackingBean.tables}" var="tabella">
current element: #{tabella}
</c:forEach>
その後、空の結果が得られます。(私は知っています、これは別の質問です)