为了账号安全,请及时绑定邮箱和手机立即绑定

如何处理页面加载时备份bean中的查询字符串URL参数?

如何处理页面加载时备份bean中的查询字符串URL参数?

慕姐4208626 2019-07-09 15:10:12
如何处理页面加载时备份bean中的查询字符串URL参数?我已经阅读了如何使用JSF发送参数,但是如果用户键入companyId当访问他们的登录页面时?例如,http:/my.company.url/productName/login.Faces?companyId=acme.按照我们现在的做法,有一些脚本代码可以从请求中获取值,然后在会话中设置它。该参数从登录页面开始改变他们的外观和感觉,这样每个客户都可以有不同的登录页面视图。在我切换到JSF之前,我们一直在使用extjs。是否有一种使用JSF 2或PrimeFaces的方法?
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

是的,你可以使用<f:viewParam>若要将请求参数设置为托管bean属性,请执行以下操作。

<f:metadata>
    <f:viewParam name="companyId" value="#{bean.companyId}" /></f:metadata>

如果有必要,可以使用<f:viewAction>(JSF2.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";}

当没有JSF2.2时,您可以使用ExternalContext#redirect()为了这个。另见如何在preRenderView侦听器方法中执行导航.

注意,这并不是PrimeFaces特有的。它只是标准JSF的一部分。PrimeFaces仅仅是一个组件库,它提供了增强的Ajax和可移植性支持。

另见:


查看完整回答
反对 回复 2019-07-09
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

URL参数也可以作为请求参数来处理,因此您也可以通过

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()


查看完整回答
反对 回复 2019-07-09
  • 3 回答
  • 0 关注
  • 322 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信