1、JSF 的 life cycle html
1.1 JSF(JaveServer Faces)生命周期有六个阶段,这六个阶段显示了典型的一个JSF处理一个form GUI虽须要作的事情:java
Restore View - 创建或者恢复原来的页面服务器
Apply Request Values - 设置请求值为组件的提交的值app
Process Validations - 转换和验证组建的值. 设置组建的值为组件提交的值性能
Update Model Values - 设置Backing bean的属性值为组件的值 url
Invoke Application - 执行actionListeners and actions.spa
Render Response - 返回response.code
这里值得提到的一点是若是组件里面有immidiate这个attribute,对于这个组件JSF的生命周期会从Apply Request Value这一步骤直接跳到Render Response而不会进行中间的步骤component
图示以下:orm
或者以下图:
1.2 对JavaServer Faces生命周期的进一步概述:
JavaServer Faces应用程序的生命周期从客户端对页面发出HTTP请求开始,到服务器响应页面时结束,而后转换为HTML。
生命周期能够分为两个主要阶段:执行和呈现。执行阶段进一步划分为子阶段,以支持复杂的组件树。该结构要求将组件数据转换和验证,处理组件事件,并以有序的方式将组件数据传播到bean。
JavaServer Faces页面由一棵名为view的组件树表示。在生命周期中,JavaServer Faces实现必须在考虑从先前提交的页面中保存的状态时构建视图。当客户端请求一个页面时,JavaServer Faces实现执行几个任务,例如验证视图中组件的数据输入,并将输入数据转换为在服务器端指定的类型。
JavaServer Faces实现执行全部这些任务,由于JavaServer中的一系列步骤都面临请求-响应生命周期。下图说明了这些步骤。
2、FACELETS 的 life cycle
(1) JSF规范定义了JavaServer Faces应用程序的生命周期。如下步骤为基于 Facelets 的应用程序的过程描述。
生命周期是在客户端使用Facelets
建立的网页发出新请求时启动。 JSF建立一个新的组件树或javax.faces.component.UIViewRoot
并放入FacesContex
。
若是可用的UIViewRoot
应用于Facelets
, 视图能够填充组件进行渲染。
新建的视图做为对客户端的响应而被渲染。
在渲染时,存储此视图的状态用于下一个请求。 存储输入组件和表单数据的状态。
客户端能够与视图交互,并从JSF应用程序请求另外一个视图。 此时,保存的视图从存储状态恢复。
恢复视图再次经过JSF生命周期,若是没有验证问题,而且没有触发任何操做,最终将生成新视图或从新呈现当前视图。
若是请求相同的视图,则再次呈现存储的视图。
若是要求新视图,则继续执行步骤2。
将新视图做为对客户端的响应。
(2) Facelets是一种轻量级的页面声明语言,用于使用HTML样式构建JSF(JavaServer Faces)视图。
它包括如下功能:
优势