У меня есть простая страница jsf с параметрами просмотра и методом загрузки, который обрабатывает эти параметры:
<f:metadata>
<f:viewParam name="param1" value="#{bean.param1}"/>
<f:viewParam name="param2" value="#{bean.param2}"/>
<f:viewParam name="param3" value="#{bean.param3}"/>
<f:event type="preRenderView" listener="#{bean.load()}"/>
</f:metadata>
Я также установил некоторые начальные значения в @PostConstruct
.
Как перенаправить пользователя в новое местоположение, включающее эти параметры (которые не являются нулевыми).
Например, пользователь вводит в браузере:
domain.com/page.jsf
и перенаправляется на:
domain.com/page.jsf?param1=valueA
потому что param1 был установлен в @PostConstruct
.
Другой вопрос - у меня есть ссылки на страницу, ссылающуюся на тот же вид:
<h:link value="clickme">
<f:param name="param3" value="otherValue"/>
</h:link>
Когда пользователь заходит на страницу с ?param1=someValue
и щелкает ссылку, он перенаправляется на ?param3=otherValue
, но я хочу перенаправить на ?param1=someValue¶m3=otherValue
.
Я знаю, что могу добавить больше параметров в <h:link>
, но трудно добавлять все возможные параметры в каждый <h:link>
PS. Я использую подсказку BalusC из этой темы JSF 2 и Post / Redirect / Get?