https://blog.csdn.net/gaotianyaoyue/article/details/4275282框架
JSF 应用程序生命周期的六个阶段是:.net
1. 恢复视图对象
2. 应用请求值;处理事件blog
3. 处理检验;处理事件生命周期
4. 更新模型值;处理事件事件
5. 调用应用程序;处理事件资源
6. 显示响应开发
这六个阶段是 JSF 处理表单 GUI 的通常次序。这个列表按照每一个阶段可能的执行次序和事件处理进行排列,可是 JSF 生命周期并非固定的。能够改变执行的次序,跳过某些阶段或彻底脱离生命周期。例如,若是一个无效的请求值被复制到组件,那么会从新显示当前视图,并可能不执行某些阶段。servlet
还能够选择彻底脱离 JSF,好比将处理委托给一个 servlet 或另外一个应用程序框架。在这种状况下,能够执行一个 FacesContext.responseComplete 方法调用,将用户重定向到另外一个页面或 Web 资源,而后使用请求调度器(从 FacesContext 中的请求对象得到)转发到适当的 Web 资源。也能够调用 FacesContext.renderResponse 来从新显示原来的视图。扩展
最重要的是,在利用生命周期组织您的开发工做的同时不会受其束缚。在须要时能够修改默认的生命周期,而没必要担忧破坏应用程序。在大多数状况下,您会发现采用 JSF 的生命周期是值得的,由于它很是符合逻辑。
在执行任何应用程序逻辑以前,必须检验表单;在执行检验以前,必须对字段数据进行转换。若是坚持采用生命周期,您就能够集中精力考虑检验和转换的细节,而没必要关注请求过程自己的阶段。还要注意,其余 Web 框架也有类似的生命周期;只不过没这么明显。
一些使用 JSF 的开发人员可能历来没有编写过组件或扩展过框架,而其余开发人员的工做却集中在这些任务上。 尽管对于几乎任何项目,JSF 生命周期都是相同的,开发人员能够根据其在项目中的角色参与不一样的阶段。若是您主要从事总体应用程序开发,那么可能关注请求处理生命周期中间的几个阶段:
若是您主要从事 JSF 组件开发,那么可能关注生命周期的第一个阶段和最后一个阶段: