`
Mojarra
  • 浏览: 129100 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JSF 页面生命周期管理 (二)

    博客分类:
  • JSF
阅读更多

 

Restore View Phase

当点 接或者表 JSF 求被 建, JSF 实现 框架开始 Restore View 段。 段中, JSF 实现 框架 为页面 打造 视图 ,在 视图 装事件 理器和校 器,保存 视图 FacesContext 例之中。 FacesContext 例包含所有的需要被 理的信息。所有的 标签 ,事件 理器, 转换 器和校 器都可以 访问这 例。

 

如果是提交 求,于 求相 对应的视图早已经存在,在这个阶段, JSF实现框架通过使用已保存在客户端或者服务器端的状态信息来恢复这个视图。

Apply Request Values Phase

在恢复组件数之后,组件树中的每个组件从请求参数中使用它的 decode方法,解析出该组件的新值,然后,这些新值被存储到相应的组件之中。如果转换失败,会生成一个错误信息,和这个组件关联上,放到 FacesContext的错误消息队列之中。这个错误消息将会在 Render View Phase这个阶段中显示, Validation  Processing Phase产生的校验错误也采用如此方式。

如果没有任何 decode 方法或者事件 renderResponse 于当前的 FacesContext 例, JSF 实现 框架跳 Render Response 段。

段中,如果一个事件被安排到 列中, JSF 实现 框架广播 个事件 给对 此事件感 趣的 听器。

段中,如果 面上的一些 件有 immediate 属性被 true ,那么校 器, 转换 器和 件上的事件会被立即 理。

这时,如果 WEB应用需要重定向到一个不同的 WEB应用或者 Non-Faces Response组件,需要调用 FacesContex.responseComplete.

这个阶段的末尾,设置组件的新值,消息和事件被放到队列之中。

Process Validations Phase

在这个阶段, JSF实现框架处理组件树中所有已经注册于组件之上的校验器,用指定的规则检验组件的属性值。如果组件的属性值无效, JSF实现框架向 FacesContext实例中添加一条错误消息,然后直接跳向 Render Response Phase阶段,附带着错误消息,页面再此被渲染,如果有在 Apply Request Values Phase阶段产生的转换错误,这类消息也在当前这个阶段显示于页面之上。

任何 validate方法或者事件监听器调用了当前 FacesContext renderResponse方法, JSF实现框架跳至 Render Response Phase阶段。

这个时候,如果应用需要跳转至 Non-Faces Response组件、页面或者其他应用,可以调用 FacesContex.responseComplete方法。如果事件已经被放入队列, JSF实现框架广播这些事件给感兴趣的监听器。

 

 

Update Model Values Phase

JSF实现 框架 检查 数据是有效之后,会遍 历组 树,用组件的本地值去设 置相 的服 象属性。 JSF 实现 框架只会用表 单输 件的 值去更新 Bean 的属性。如果本地 不能 化成 bean 中特定的 Java 型,直接跳向 Render Response Phase 阶段,所以页面会渲染错误消息。这种情况类似于检验错误的发生。

如果任何 updateModels方法或者任何监听器调用了 renderResponse JSF实现框架跳向 Render Response Phase阶段。

这个时候,如果应用需要跳转至 Non-Faces Response组件、页面或者其他应用,可以调用 FacesContex.responseComplete方法。如果事件已经被放入队列, JSF实现框架广播这些事件给感兴趣的监听器。

Invoke Application Phase

段, JSF实现 框架 才开始处理应用级别的事件,比如表单提交或者链接至另外一个页面。

这个时候,如果应用需要跳转至 Non-Faces Response组件、页面或者其他应用,可以调用 FacesContex.responseComplete方法。

如果正在被处理的页面是从前一个请求状态信息重构而来,页面上的一个组件触发一个事件,这些事件被广播到感兴趣的监听器。

Render Response Phase

段种,如果 WEB 用使用 JSP技术 JSF实现 框架代理渲染 JSP容器。如果是初始 求, 面上的 件将被添加到 中,作 JSP容器 行。如果不是初始 求, 面上的 件早已 经被添加到组件树之中,不需要被再此添加。随后,这些组件被渲染成JSP容器可识别的页面标签。

假如是提交请求,在Apply request values phase, process validation phase 或者 update model phase有错误发生,原始页面已经被渲染。假使页面上有 message或者 messages标签,排队的错误消息会显示在页面上。

视图的内容被渲染之后,随后响应的状态被保存,以保证子请求序列能存储之,并对 Restore View Phase这个阶段可用。

分享到:
评论

相关推荐

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    5.4.2 使用托管bean作为JSF页面的支撑bean 第6章 导航模型 6.1 使用隐式导航 6.2 JSF导航系统概述 6.2.1 回顾MVC-控制器 6.2.2 Navigation HandleI-幕后主管 6.2.3 Faces动作方法说明 6.3 构建导航规则 6.3.1 静态...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    5.4.2 使用托管bean作为JSF页面的支撑bean 第6章 导航模型 6.1 使用隐式导航 6.2 JSF导航系统概述 6.2.1 回顾MVC-控制器 6.2.2 Navigation HandleI-幕后主管 6.2.3 Faces动作方法说明 6.3 构建导航规则 6.3.1 静态...

    开发JSF应用程序(与Web有关)

    一年以来,Java Server Faces 是 J2EE Web 开发方面最值得期待的技术之一。...JSF 提供的 UI 框架由 UI组件和运行时组成,运行时负责把这些组件呈现给客户端并管理页面的生命周期(错误、验证器、导航等等)。

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    2.8 JSF的运行流程和生命周期 109 2.8.1 恢复视图阶段 110 2.8.2 应用请求值阶段 110 2.8.3 处理输入校验阶段 111 2.8.4 更新模型的值阶段 111 2.8.5 调用应用阶段 111 2.8.6 生成响应阶段 111 2.9 利用JSF的消息 ...

    Java.Server.Faces编程.part2

    在这篇文章中,将对JSF框架和组成JSF框架的各种关键部件进行一个简单的介绍,接下来详细介绍JSF的请求处理生命周期的各种状态,然后提供一个简单的应用来示范其各种特性。 由于文件较大,WINRAR分两部上传

    Java Server Faces编程.part1

    在这篇文章中,将对JSF框架和组成JSF框架的各种关键部件进行一个简单的介绍,接下来详细介绍JSF的请求处理生命周期的各种状态,然后提供一个简单的应用来示范其各种特性。 由于文件较大,WINRAR分两部分上传

    JavaServer Faces 2.0, The Complete Reference

    JavaServer Faces 2.0, The Complete Reference 自从JSF 2.0立项起,就一直关注他,除了他承诺的那些技术和思想上的先进性,更多的原因是由于他为适应Web 2.0开发应用而提出的简化开发...d、 增强的事件模型和生命周期

    J2EE应用开发详解

    141 9.1.2 JSF应用程序配置 142 9.2 一个简单的JSF应用 142 9.2.1 JSF应用程序开发步骤 143 9.2.2 用户登录实例 143 9.3 JSF应用程序架构 147 9.3.1 JSF请求处理生命周期 147 9.3.2 JSF事件驱动模型 148 9.3.3 JSF...

    本科毕业设计开题报告(计算机协会信息管理系统的设计与实现V5)

    PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。 六、研究方法 该毕业设计采用的研究方法...

    java web 开发详解

     优点: 对覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理 与许多表示层技术/框架无缝集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等 便于测试——归功于IoC 缺点: ...

    JAVA程序开发大全---上半部分

    11.1.2 JSF框架的请求处理生命周期 201 11.1.3 JSF应用程序结构 202 11.2 MyEclipse创建基于JSF框架的项目 202 11.2.1 创建JSF项目 202 11.2.2 JSF配置文件编辑器 203 11.2.3 创建Managed Bean 204 11.2.4 创建JSP...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    1.5. Seam 页面流:猜数字范例........................................................................................................................................ 40 1.5.1. 理解代码....................

    从Java走向Java+EE+.rar

    5.1 Servlet的概念和生命周期 65 5.2 如何编写Servlet 67 5.3 使用Eclipse和Tomcat开发Servlet实例——输出字符串响应 72 5.4 小结 77 第6章 JSP——前后台更好地分离 79 6.1 JSP的概念 79 6.2 JSP页面...

    Hibernate实战(第2版 中文高清版)

     9.1 持久化生命周期   9.1.1 对象状态   9.1.2 持久化上下文   9.2 对象同一性和等同性   9.2.1 引入对话   9.2.2 对象同一性的范围   9.2.3 脱管对象的同一性   9.2.4 扩展持久化上下文   9.3 ...

Global site tag (gtag.js) - Google Analytics