繁体   English   中英

fs事件的jsf执行顺序

[英]jsf execution order of f:events

这些的执行顺序是什么?

以下是关于可能的f:event事件名称的问题: JSF 2事件列表?

preRenderComponent
preRenderView
postAddToView
preValidate
postValidate

我想检查用户是否保存在会话bean中,如果没有重定向到登录站点,这需要在view-param转换阶段之前发生,因为使用的转换器依赖于登录的用户。 'preValidate'似乎是在转换后发生的,因此我需要更早的事件。

<f:event type="preRenderView" listener="#{beanA.checkLoggedIn()}"/>
<f:viewParam name="param" value="#{beanB.param}" converter="#{beanB.converter}" required="true"/>

我也可以在'beanB'中加入'checkLoggedIn()',但是试图使用一个单独的请求范围的bean来进行检查,以便我可以轻松地重用它。

这些的执行顺序是什么?

  • postAddToView在视图构建期间(通常在恢复视图阶段期间,也可以在渲染响应阶段,例如导航期间)将组件添加到视图后postAddToView运行。
  • preValidate在要验证组件之前运行(通常在验证阶段,但如果immediate="true" ,也可以应用请求值阶段)。
  • postValidate在验证组件后postValidate运行(通常在验证阶段,但如果immediate="true" ,也可以应用请求值阶段)。
  • preRenderView在呈现响应阶段呈现视图之前运行。
  • preRenderComponent在渲染响应阶段呈现组件之前运行。

单击链接以查看javadoc简介中的详细说明。


我想检查用户是否保存在会话bean中,如果没有重定向到登录站点,这需要在view-param转换阶段之前发生,因为使用的转换器依赖于登录的用户。 'preValidate'似乎是在转换后发生的,因此我需要更早的事件。

您应该为此使用简单的servlet过滤器 ,而不是JSF事件。 我之前发过几个例子:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM