JavaServer Faces应用程序的生命周期在客户端为页面发出HTTP请求时开始,并在服务器响应该页面并转换为HTML时结束。html
生命周期能够分为两个主要阶段:执行和渲染。执行阶段进一步分为子阶段以支持复杂的组件树。这种结构要求组件数据被转换和验证,组件事件被处理,而且组件数据以有序的方式传播到bean。java
JavaServer Faces页面由一个称为视图的组件树表示。在生命周期中,JavaServer Faces实现必须构建视图,同时考虑从先前提交的页面保存的状态。当客户端请求页面时,JavaServer Faces实现将执行多个任务,例如验证视图中组件的数据输入并将输入数据转换为服务器端指定的类型。git
JavaServer Faces实现将执行全部这些任务,做为JavaServer Faces请求 - 响应生命周期中的一系列步骤。 图7-3说明了这些步骤。github
当客户端(如浏览器)向使用Facelets建立的页面发出新的请求时,会建立一个新的组件树或 javax.faces.component.UIViewRoot
将其建立并放入FacesContext
。浏览器
该UIViewRoot
应用于Facelets,视图中填充了用于渲染的组件。服务器
新建的视图做为对客户端的响应而回复。app
在渲染时,为下一个请求存储此视图的状态。输入组件和表单数据的状态被存储。spa
客户端能够与视图交互并从JavaServer Faces应用程序请求另外一个视图或更改。此时,保存的视图从存储的状态恢复。code
恢复的视图再次经过JavaServer Faces生命周期,若是没有验证问题而且未触发任何操做,它最终将生成新视图或从新呈现当前视图。component
若是请求了相同的视图,则再次呈现存储的视图。
若是请求新视图,则继续步骤2中描述的过程 。
新的视图而后做为对客户的响应而回复。
参考资料: https://javaee.github.io/tutorial/jsf-intro007.html#BNAQQ