В этом сообщении отличный BalusC указал на использование ‹c :forEach›, чтобы получить параметры во время сборки.
Кодекс
У меня есть более сложная версия с переменным количеством параметров (элементов ‹f:param›), которые основаны на другой части формы. В верхней части формы есть DataTable всех возможных «критериев». В нижней части находится изображение PrimeFaces graphicImage, содержимое которого основано на выборе этих критериев, включая только используемые критерии.
<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 — это bean-компонент RequestScope.
Я использую JSF 2.1, Tomcat 7.0.22 и Primefaces 2.2.1.
Проблема
Когда я выбираю/включаю критерий (например, param="eventDate", operator="after", value="2011-10-01"), параметры graphicImage создаются в начале жизненного цикла во время создания дерева на этапе RestoreView ; набор параметров, который мне действительно нужен, не обновляется до этапа UpdateModelValues.
Есть ли способ получить набор параметров для p:graphicImage на основе фактических результатов самой обратной передачи?