この投稿では、優れた BalusC が <c:forEach> を使用してビルド時にパラメーターを取得することを指摘しました。
コード
フォームの別の部分に基づいて可変量のパラメーター (<f:param> 要素) を使用した、より複雑なバージョンがあります。フォームの上部には、考えられるすべての「基準」の DataTable があります。下部には、使用されている基準のみを含む、これらの基準での選択に基づいた内容の PrimeFaces グラフィック画像があります。
<p:dataTable var='criterion' value='#{criteria}'
binding="#{searchBean.criteriaList}" id="#{id}">
... each row shows a criteria, which has a parameter name, an operator, and a value ...
... each row may be set or not set ...
</p:dataTable>
<p:graphicImage value="#{searchBean.lineChartImage}">
<c:forEach var="criteriaName" items="#{searchBean.usedCriteriaKeys}">
<f:param name="#{criteriaName}" value="#{searchBean.criteriaMap[criteriaName]}"/>
</c:forEach>
</p:graphicImage>
バックグラウンド
パラメータが設定されている限り、 searchBean.lineChartImage メソッドが正しいチャートを提供してくれることはわかっています。
SearchBean は RequestScope Bean です。
JSF 2.1、Tomcat 7.0.22、および Primefaces 2.2.1 を使用しています。
問題
条件を選択/有効にすると (たとえば、param="eventDate"、operator="after"、value="2011-10-01")、ライフサイクルの早い段階で、RestoreView フェーズのツリー作成時に、graphicImage のパラメーターが作成されます。 ; 私が実際に必要とするパラメーターのセットは、UpdateModelValues フェーズまで更新されません。
ポストバック自体の実際の結果に基づいて p:graphicImage の一連のパラメーターを取得する方法はありますか?