kar*_*kpl 7 jsf post-redirect-get jsf-2 viewparams
我有简单的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>
Run Code Online (Sandbox Code Playgroud)
我还设置了一些初始值@PostConstruct.如何将用户重定向到包含这些参数(非空)的新位置.例如用户在浏览器中输入:
domain.com/page.jsf
Run Code Online (Sandbox Code Playgroud)
并被重定向到:
domain.com/page.jsf?param1=valueA
Run Code Online (Sandbox Code Playgroud)
因为param1已设置@PostConstruct.
另一个问题 - 我在页面上有链接引用相同的视图:
<h:link value="clickme">
<f:param name="param3" value="otherValue"/>
</h:link>
Run Code Online (Sandbox Code Playgroud)
当用户进入页面?param1=someValue并点击链接时,被重定向到?param3=otherValue但我想重定向到?param1=someValue¶m3=otherValue.我知道我可以添加更多的参数,<h:link>但是在每个参数中添加每个可能的参数都是困难的<h:link>
PS.我从这个主题JSF 2和Post/Redirect/Get使用BalusC提示?
Bal*_*usC 12
至于第一个问题:您可以添加includeViewParams=true导航案例结果.但是你永远不能保证你在preRenderView方法中做到这一点时会被成功地重定向.那可能已经太晚了.
至于第二个问题:你可以设置to 的includeViewParams属性.<h:link>true
<h:link value="clickme" includeViewParams="true">
<f:param name="param3" value="otherValue"/>
</h:link>
Run Code Online (Sandbox Code Playgroud)
或者,您也可以添加includeViewParams=true结果.
<h:link value="clickme" outcome="otherPage?includeViewParams=true">
<f:param name="param3" value="otherValue"/>
</h:link>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12536 次 |
| 最近记录: |