猿问

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

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

我已经阅读了如何使用JSF发送参数,但是如果用户键入companyId当访问他们的登录页面时?例如,

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

按照我们现在的做法,有一些脚本代码可以从请求中获取值,然后在会话中设置它。该参数从登录页面开始改变他们的外观和感觉,这样每个客户都可以有不同的登录页面视图。在我切换到JSF之前,我们一直在使用extjs。

是否有一种使用JSF 2或PrimeFaces的方法?


慕姐4208626
浏览 323回答 3
3回答

哈士奇WWW

是的,你可以使用<f:viewParam>若要将请求参数设置为托管bean属性,请执行以下操作。<f:metadata> &nbsp;&nbsp;&nbsp;&nbsp;<f:viewParam&nbsp;name="companyId"&nbsp;value="#{bean.companyId}"&nbsp;/></f:metadata>如果有必要,可以使用<f:viewAction>(JSF2.2+只)或<f:event type="preRenderView">.<f:metadata> &nbsp;&nbsp;&nbsp;&nbsp;<f:viewParam&nbsp;name="companyId"&nbsp;value="#{bean.companyId}"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<f:viewAction&nbsp;action="#{bean.onload}"&nbsp;/></f:metadata>使用时<f:viewAction>您甚至可以返回导航结果。public&nbsp;String&nbsp;onload()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;... &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"somepage";}当没有JSF2.2时,您可以使用ExternalContext#redirect()为了这个。另见如何在preRenderView侦听器方法中执行导航.注意,这并不是PrimeFaces特有的。它只是标准JSF的一部分。PrimeFaces仅仅是一个组件库,它提供了增强的Ajax和可移植性支持。另见:<f:元数据>、<f:viewParam>和<f:viewAction>可以用于什么?JSF2.0中的通信-处理GET请求参数

胡子哥哥

URL参数也可以作为请求参数来处理,因此您也可以通过FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答