JSF 定义了标准的请求处理声明周期。开发人员了解相关知识可以帮助理解例如验证、数据转换、事件处理等操作会在哪个阶段被执行。
JSF 页面通过 UI 组件树进行展示,称作视图(view)。当客户端发起页面请求后,生命周期开始。在整个生命周期过程中,JSF 需要根据之前保存的状态来生成页面。当客户端提交页面的时候,JSF 必须执行几个任务,比如验证视图组件中的输入数据、转换客户端输入的数据为服务端定义的类型、绑定数据到后台 bean。JSF 执行这些任务是通过生命周期中的几个步骤。
不同的应用程序组件都需要经过以下生命周期:
恢复视图
恢复和创建服务端组件树,用于展示客户端的 UI 信息。
如果客户端第一次请求到某个 URL,那么会创建一个新的 View 对象用于展示,这个视图会保存到当前的 FacesContext 中。如果已经在 FacesContext 找到视图对象,那么就会恢复视图并进行展示。
任何 UI 组件上的自定义转换器、验证器、渲染器也都会在这个时期被恢复。如果 UI 组件上的值直接映射到了后台 bean 的某个属性,那么属性值将会加载并且与 view 关联。大多数的这些操作都会 ViewHandler.restoreView 中进行。
接收请求值
这个时期会根据客户端提交的请求参数、header、cookie 来更新服务器端组件。
更准确地说,会调用所有组件的 UIComponent.processDecodes 方法。
验证处理
这个时期会处理 UIComponent 配置的验证和转换。
在这个时期,所有组件的 UIComponent.processValidators 方法将会被调用。如果验证和转换过程中出现错误,此生命周期将会结束并向客户端展示错误信息。
更新数据模型
到这个时候,说明数据验证已经通过。
UIComponent 的值将会同步到模型对象,通常是后台 Bean。在这个时期,将会调用所有组件的 UIComponent.processUpdates 方法。设置模型对象的值有可能导致事件排队或触发。
调用应用
调用业务逻辑和进行页面导航处理。
所有注册到 UIComponent 上的监听器将会被调用。例如,所有的像 command button 或 hyperlink 这样拥有默认事件监听器的 action 组件,它们的事件监听器将会在这个时期被调用。
渲染响应
渲染响应到客户端。
在渲染响应之前,应用程序会自动调用 View 的 UIViewRoot.saveState 方法保存状态。
文章来源:
http://www.aptusource.org/2014/04/java-ee-7-request-processing-life-cycle-phases/
分享到:
相关推荐
JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结JSF生命周期总结
algaworks-ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao
JSF请求处理生命周期图
Practical JSF in Java EE 8 pdf Master the Java EE 8 and JSF (JavaServer Faces) APIs and web framework with this practical, projects-driven guide to web development. This book combines theoretical ...
In a sense, this book teaches you to develop Java EE applications with JSF as user interface. It’s a book for Java enthusiasts. Knowledge about web technologies is helpful, but not required. For ...
JSF 生命周期 实例详解 非常不错的介绍
本书是一个面向任务的实用指南,通过一系列实用示例来介绍如何开发Java EE 7(java平台企业版7)企业应用。这本书由Oracle的Java EE文档小组成员倾力编写,会让初学者和中缎Java程序员深入了解这个平台。 这个指南包括...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...
本书是一个面向任务的实用指南,通过一系列实用示例来介绍如何开发Java EE 7(java平台企业版7)企业应用。这本书由Oracle的Java EE文档小组成员倾力编写,会让初学者和中缎Java程序员深入了解这个平台。 这个指南包括...
本书涵盖了所有主要的Java EE 7的API,包括JSF 2.2,EJB 3.2,1.1 CDI,对于WebSocket的,JAX-WS,JAX-RS多的Java API。 书中还介绍了JSON-P,为JSON(JavaScript对象符号)处理的Java API。这种先进的主题涉及如何...
java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js
在Java EE 6中使用JSF 2.0简化页面制作 在Java EE 6中使用JSF 2.0简化页面制作 在Java EE 6中使用JSF 2.0简化页面制作
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3
JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...
java jsp jsf fx java jsp jsf fx java jsp jsf fx
JSF生命周期及组件开发
本书为java ee 规范的讲解,JSF,CDI,EJB,JPA,JTA,互操作包括message queue;restful service; soapservice