gpt4 book ai didi

jsf - 如何在页面加载时处理支持 bean 中的 GET 查询字符串 URL 参数?

转载 作者:行者123 更新时间:2023-12-03 08:51:45 25 4
gpt4 key购买 nike

我已经阅读了如何使用 JSF 发送参数,但是如果用户输入他们的 companyId 会怎样?在访问他们的登录页面时的 URL 中?例如,

http://my.company.url/productName/login.faces?companyId=acme.



我们现在这样做的方式是,有一些 scriptlet 代码从请求中获取值,然后在 session 中设置它。该参数从登录页面开始改变他们的外观,因此每个客户可以有不同的登录页面 View 。在我切换到 JSF 之前,我们一直在使用 extjs。

有没有办法使用 JSF 2 或者 PrimeFaces 来做到这一点?

最佳答案

是的,您可以使用 <f:viewParam> 将请求参数设置为托管 bean 属性。

<f:metadata>
<f:viewParam name="companyId" value="#{bean.companyId}" />
</f:metadata>
如有必要,您可以使用 <f:viewAction> 调用 bean 操作。 (仅限 JSF 2.2+)或 <f:event type="preRenderView"> .
<f:metadata>
<f:viewParam name="companyId" value="#{bean.companyId}" />
<f:viewAction action="#{bean.onload}" />
</f:metadata>
使用时 <f:viewAction>您甚至可以返回导航结果。
public String onload() {
// ...

return "somepage";
}
如果还没有在 JSF 2.2 上,您可以使用 ExternalContext#redirect() 为了那个原因。另见其他 How to perform navigation in preRenderView listener method .
请注意,这并非特定于 PrimeFaces。它只是标准 JSF 的一部分。 PrimeFaces 只是一个组件库,它提供了增强的 ajax 和外观支持。
也可以看看:
  • What can <f:metadata>, <f:viewParam> and <f:viewAction> be used for?
  • Communication in JSF 2.0 - Processing GET request parameters
  • @ManagedProperty with request parameter not set in a @Named bean
  • 关于jsf - 如何在页面加载时处理支持 bean 中的 GET 查询字符串 URL 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724428/

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