動的列の問題に直面しています。以前に選択したいくつかのフィルターに列が依存するテーブルがあります。ページに入ると、年と他のいくつかの基準を選択でき、これらの値を使用してテーブルをレンダリングします。私たちの問題は、異なる基準を選択すると列が異なる可能性があることです。これは、c:forEachがそれほど動的ではないために問題になります。
IceSoft Wikiで提供されている例を見ると、コードにあるものと似たものがわかります(ただし、コードははるかに複雑です): http ://www.icesoft.org/wiki/display/ICE/DataTable+動的+列
問題はこの文にあります:
<c:forEach items="#{backing.columns}" var="colModel">
backing.columnsは静的です。ただし、要素の数を変更すると(この例では、「列」リストの値がTaskクラスのプロパティと一致するため意味がありませんが、リストではなくリストを出力する場合)、次のように問題が発生します。 http://drewdev.blogspot.com.es/2008/08/cforeach-with-jsf-could-ruin-your-day.html
次のコマンドで列を変更すると、コンポーネントリストを再作成しようとしました。
component.getChildren().clear(); //component is of UIComponent type
しかし、うまくいきませんでした。また、PhaseListenerでコンテキストからビューを復元しようとしましたが、肯定的な結果は得られませんでした。そして、私たちはアイデアを使い果たしました。
任意のアイデア(または解決策:D)をいただければ幸いです。さらに具体的なコードが必要な場合は、質問してください。
TIA。
PS:この質問はICEFacesフォーラム(http://www.icesoft.org/JForum/posts/list/0/21842.page#76787)にも投稿されており、両方の場所で解決策(ある場合)で更新します。