gpt4 book ai didi

jsf - 自动在 URL 中包含 View 参数

转载 作者:行者123 更新时间:2023-12-04 10:43:13 27 4
gpt4 key购买 nike

我有一个简单的 jsf 页面,其中包含 View 参数和正在处理这些参数的加载方法:

<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 中设置的.

另一个问题 - 我在页面上有引用相同 View 的链接:
<h:link value="clickme">
<f:param name="param3" value="otherValue"/>
</h:link>

当用户使用 ?param1=someValue 进入页面时然后点击链接,被重定向到 ?param3=otherValue但我想重定向到 ?param1=someValue&param3=otherValue .
我知道我可以在 <h:link> 中添加更多参数但是很难在每个 <h:link> 中添加所有可能的参数

附注。我使用本主题中的 BalusC 提示 JSF 2 and Post/Redirect/Get?

最佳答案

关于第一个问题:您可以添加includeViewParams=true到导航案例结果。但是,当您在 preRenderView 中执行此操作时,您永远无法保证会成功重定向。方法。那时可能已经太晚了。

关于第二个问题:您可以设置includeViewParams <h:link> 的属性至 true .

<h:link value="clickme" includeViewParams="true">
<f:param name="param3" value="otherValue"/>
</h:link>

或者,您也可以添加 includeViewParams=true到结果。
<h:link value="clickme" outcome="otherPage?includeViewParams=true">
<f:param name="param3" value="otherValue"/>
</h:link>

关于jsf - 自动在 URL 中包含 View 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257112/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com