目录

JSF - 生命周期( Life Cycle)

JSF应用程序生命周期包括六个阶段,如下所示 -

  • Restore view phase
  • 应用请求值阶段; 过程事件
  • 流程验证阶段; 过程事件
  • 更新模型值阶段; 过程事件
  • 调用应用阶段; 过程事件
  • 渲染响应阶段
JSF生命周期

这六个阶段显示了JSF处理表单的顺序。 该列表显示了每个阶段的事件处理可能执行顺序的阶段。

阶段1:还原视图

只要单击链接或按钮并且JSF收到请求,JSF就会开始恢复视图阶段。

在此阶段,JSF构建视图,将事件处理程序和验证程序连接到UI组件,并将视图保存在FacesContext实例中。 FacesContext实例现在将包含处理请求所需的所有信息。

阶段2:应用请求值

在创建/恢复组件树之后,组件树中的每个组件都使用decode方法从请求参数中提取其新值。 Component存储此值。 如果转换失败,则会生成错误消息并在FacesContext上排队。 此消息将在呈现响应阶段显示,并显示任何验证错误。

如果任何解码方法事件侦听器在当前FacesContext实例上调用renderResponse,则JSF将移至渲染响应阶段。

阶段3:流程验证

在此阶段,JSF处理在组件树上注册的所有验证器。 它检查验证的组件属性规则,并将这些规则与为组件存储的本地值进行比较。

如果本地值无效,JSF会向FacesContext实例添加一条错误消息,生命周期将前进到呈现响应阶段,并再次显示相同的页面并显示错误消息。

阶段4:更新模型值

在JSF检查数据是否有效之后,它会遍历组件树并将相应的服务器端对象属性设置为组件的本地值。 JSF将更新与输入组件的value属性对应的bean属性。

如果任何updateModels方法在当前FacesContext实例上调用renderResponse,则JSF将移至渲染响应阶段。

阶段5:调用应用程序

在此阶段,JSF处理任何应用程序级事件,例如提交表单/链接到另一个页面。

阶段6:渲染响应

在此阶段,如果应用程序使用JSP页面,JSF会要求容器/应用程序服务器呈现页面。 对于初始请求,当JSP容器执行页面时,页面上表示的组件将添加到组件树中。 如果这不是初始请求,则已构建组件树,因此无需再次添加组件。 在任何一种情况下,组件都将自身呈现为JSP容器/应用程序服务器遍历页面中的标记。

在呈现视图的内容之后,将保存响应状态,以便后续请求可以访问它,并且它可用于还原视图阶段。

↑回到顶部↑
WIKI教程 @2018