生命周期处理两种请求:初始请求和回发。当用户首次请求页面时,他或她正在首次请求该页面。当用户执行回发时,由于执行初始请求,他或她会提交以前加载到浏览器中的页面中包含的表单。当生命周期处理初始请求时,它仅执行恢复视图和呈现响应阶段,因为没有用户输入或要处理的操作。相反,当生命周期处理回发时,它会执行所有阶段。
1.恢复查看
构建视图根并保存到FacesContext中,包括事件处理程序和验证程序
如果这是最初的需求,则创建空视图并且生命周期提前直接呈现响应。
2.应用请求值
组件从请求参数中提取新值。类型转换发生在这个阶段。
如果在FacesContext上调用renderResponse,则跳至呈现响应阶段。
可以调用FacesContext.responseComplete,并重定向到不同的Web应用程序
如果立即设置为true,则验证,转换,事件将在阶段中处理。
3.过程验证
在组件上注册的进程验证器。如果有任何错误消息,则生命周期直接进入呈现响应阶段。
如果调用FacesContext.renderResponse,则跳至呈现响应阶段
如果调用FacesContext.responseComplete,则重定向到不同的Web应用程序
4.更新模型值
更新组件值来管理bean属性
类似于FacesContext.responseComplete
类似于FacesContext.renderResponse
5.调用应用程序
处理应用程序级别的事件
类似于FacesContext.responseComplete
6.渲染响应
如果使用JSP页面,组件将在JSP容器遍历页面中的标签时自行呈现。
如果这是初始请求,那么在JSP容器执行页面时,页面上显示的组件将被添加到组件树中。
参考:https://blog.csdn.net/echohfut