一、JSF Life Cycle:
图1
图2
应用程序的生命周期是指应用程序的各个阶段,从开始到结束。所有应用程序的生命周期。在web应用程序生命周期中,执行常见任务,包括以下内容。
■处理传入的请求
■解码参数
■修改和保存状态
■呈现网页浏览器的JavaServer Faces web应用程序框架管理生命周期阶段自动对于简单的应用程序或允许您根据需要手动管理他们对于更复杂的应用程序。
JavaServer面对使用高级特性的应用程序可能需要在某些阶段与生命周期进行交互。例如,Ajax应用程序使用生命周期的部分处理特性(参见部分处理和部分呈现)。对生命周期阶段的更清晰的理解是创建设计良好的组件的关键。在一个简单的JavaServer faces应用程序中介绍了JavaServer faces生命周期的一个简化视图,它包含了一个JavaServer faces web应用程序的两个主要阶段。
JavaServer Faces应用程序的生命周期从客户端对页面发出HTTP请求开始,到服务器响应页面时结束,然后转换为HTML。生命周期可以分为两个主要阶段:执行和呈现。执行阶段进一步划分为子阶段,以支持复杂的组件树。该结构要求将组件数据转换和验证,处理组件事件,并以有序的方式将组件数据传播到bean。JavaServer Faces页面由一棵名为view的组件树表示。在生命周期中,JavaServer Faces实现必须在考虑从先前提交的页面中保存的状态时构建视图。当客户端请求一个页面时,JavaServer Faces实现执行几个任务,例如验证视图中组件的数据输入,并将输入数据转换为在服务器端指定的类型。JavaServer Faces实现执行所有这些任务,因为JavaServer中的一系列步骤都面临请求-响应生命周期。图7-3演示了这些步骤。
二、Facelets Life Cycle:
JavaServer Faces规范定义了JavaServer Faces应用程序的生命周期。有关此生命周期的更多信息,请参见JavaServer Faces应用程序的生命周期。下面的步骤描述了应用于基于facelet的应用程序的过程。
1.当客户端(例如浏览器)向使用Facelets创建的页面发出新的请求时,将创建新的组件树或javax.faces.component.UIViewRoot,并将其放置在FacesContext中。
2.UIViewRoot应用于Facelets,视图中填充了用于呈现的组件。
3.新构建的视图作为对客户机的响应返回。
4.在呈现时,此视图的状态存储为下一个请求。存储输入组件和表单数据的状态。
5.客户端可以与视图交互,并从JavaServer Faces应用程序请求另一个视图或更改。此时,保存的视图从存储状态恢复。
6.恢复的视图再一次通过JavaServer Faces生命周期,它最终将生成一个新的视图,或者重新呈现当前视图,如果没有验证问题,并且没有触发操作。
7.如果请求相同的视图,则再次呈现存储视图。
8.如果请求新视图,则继续执行步骤2中描述的流程。
9.然后将新视图作为对客户机的响应返回。