f:events的jsf执行顺序

f:events的jsf执行顺序,events,jsf,Events,Jsf,这些案件的执行顺序是什么 这里有一个关于可能的f:event事件名称的问题: 我想检查用户是否保存在会话bean中,如果未登录,则重定向到登录站点,这需要在查看参数转换阶段之前进行,因为使用的转换器取决于登录的用户。”“preValidate”似乎发生在转换之后,因此我需要一个更早的事件 <f:event type="preRenderView" listener="#{beanA.checkLoggedIn()}"/> <f:viewParam name="param" va

这些案件的执行顺序是什么

这里有一个关于可能的
f:event
事件名称的问题:

我想检查用户是否保存在会话bean中,如果未登录,则重定向到登录站点,这需要在查看参数转换阶段之前进行,因为使用的转换器取决于登录的用户。”“preValidate”似乎发生在转换之后,因此我需要一个更早的事件

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

我也可以在'beanB'中添加'checkLoggedIn()',但是我尝试使用一个单独的请求范围bean来进行检查,这样我就可以很容易地重用它

这些案件的执行顺序是什么

  • 在视图生成期间(通常在恢复视图阶段,但也可以在渲染响应阶段,例如导航)将组件添加到视图后立即运行
  • 在验证组件之前运行(通常在验证阶段,但如果
    immediate=“true”
    ,也可以在应用请求值阶段)
  • 组件验证后立即运行(通常在验证阶段,但如果
    immediate=“true”
    ,也可以在应用请求值阶段)
  • 在渲染响应阶段渲染视图之前运行
  • 在渲染响应阶段渲染组件之前运行
单击链接查看javadoc简介中的详细描述


我想检查用户是否保存在会话bean中,如果未登录,则重定向到登录站点,这需要在查看参数转换阶段之前进行,因为使用的转换器取决于登录的用户。”“preValidate”似乎发生在转换之后,因此我需要一个更早的事件

<f:event type="preRenderView" listener="#{beanA.checkLoggedIn()}"/>
<f:viewParam name="param" value="#{beanB.param}" converter="#{beanB.converter}" required="true"/>
为此,您应该使用简单的JSF事件,而不是JSF事件。我以前发布过几个例子:


  • immediate=“true”
    的情况下,组件上根本不会调用
    preValidate
    /
    postValidate
    。查看Mojarra的源代码可以证实这一点。应该是这样吗?