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