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

我已经阅读了如何使用JSF发送参数,但是如果用户在访问其登录页面时在URL中键入companyId呢?例如,

07000.

现在我们这样做,有一些scriptlet代码从请求中获取值,然后将其设置在会话中。该参数从登录页面开始改变它们的外观,每个客户可以具有不同的登录页面视图。我正在使用extjs,直到我切换到JSF。

有没有办法使用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”&gt ;.

<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和skinnability支持的组件库。

也可以看看:

> What can <f:metadata>, <f:viewParam> and <f:viewAction> be used for?
> Communication in JSF 2.0 – Processing GET request parameters

http://stackoverflow.com/questions/10724428/how-do-i-process-get-query-string-url-parameters-in-backing-bean-on-page-load

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:jsf – 如何在页面加载时处理支持bean中的GET查询字符串URL参数?