第六周 javaee 作业

一、JSF 的 life cycle  

1.1   JSF(JaveServer Faces)生命周期有六个阶段,这六个阶段显示了典型的一个JSF处理一个form GUI虽需要做的事情:

  • Restore View - 建立或者恢复原来的页面

  • Apply Request Values - 设置请求值为组件的提交的值

  • Process Validations - 转换和验证组建的值. 设置组建的值为组件提交的值

  • Update Model Values - 设置Backing bean的属性值为组件的值 

  • Invoke Application - 执行actionListeners and actions.

  • Render Response - 返回response.

这里值得提到的一点是如果组件里面有immidiate这个attribute,对于这个组件JSF的生命周期会从Apply Request Value这一步骤直接跳到Render Response而不会进行中间的步骤

 

图示如下:

JSF生命周期 <wbr>(JSF <wbr>Life <wbr>Cycle)

 

 

或者如下图:

 

1.2  对JavaServer Faces生命周期的进一步概述:

 JavaServer Faces应用程序的生命周期从客户端对页面发出HTTP请求开始,到服务器响应页面时结束,然后转换为HTML。

 生命周期可以分为两个主要阶段:执行和呈现。执行阶段进一步划分为子阶段,以支持复杂的组件树。该结构要求将组件数据转换和验证,处理组件事件,并以有序的方式将组件数据传播到bean。

 JavaServer Faces页面由一棵名为view的组件树表示。在生命周期中,JavaServer Faces实现必须在考虑从先前提交的页面中保存的状态时构建视图。当客户端请求一个页面时,JavaServer Faces实现执行几个任务,例如验证视图中组件的数据输入,并将输入数据转换为在服务器端指定的类型。

 JavaServer Faces实现执行所有这些任务,因为JavaServer中的一系列步骤都面临请求-响应生命周期。下图说明了这些步骤。

Flow diagram of Faces request and Faces response, including event and validation processing, error handling, model updating, application invocation.

 

 

二、FACELETS 的  life cycle

(1) JSF规范定义了JavaServer Faces应用程序的生命周期。以下步骤为基于 Facelets 的应用程序的过程描述。

  1. 生命周期是在客户端使用Facelets创建的网页发出新请求时启动。 JSF创建一个新的组件树或javax.faces.component.UIViewRoot并放入FacesContex

  2. 如果可用的UIViewRoot应用于Facelets, 视图可以填充组件进行渲染。

  3. 新建的视图作为对客户端的响应而被渲染。

  4. 在渲染时,存储此视图的状态用于下一个请求。 存储输入组件和表单数据的状态。

  5. 客户端可以与视图交互,并从JSF应用程序请求另一个视图。 此时,保存的视图从存储状态恢复。

  6. 恢复视图再次通过JSF生命周期,如果没有验证问题,并且没有触发任何操作,最终将生成新视图或重新呈现当前视图。

  7. 如果请求相同的视图,则再次呈现存储的视图。

  8. 如果要求新视图,则继续执行步骤2

  9. 将新视图作为对客户端的响应。

 

(2) Facelets是一种轻量级的页面声明语言,用于使用HTML样式构建JSF(JavaServer Faces)视图。

它包括以下功能:

  • 它使用XHTML创建网页。
  • 除了支持JavaServer Faces和JSTL标记库之外,它还支持Facelets标签库。
  • 它支持表达语言(EL)。
  • 它是使用组件和页面的模板。

优点

  • 它通过模板和复合组件支持代码可重用性。
  • 它通过定制提供组件和其他服务器端对象的功能可扩展性。
  • 编译时间更快
  • 它在编译时验证表达式语言。
  • 高性能渲染能力。

 

posted @ 2018-04-13 13:27  real_psyyyy  阅读(245)  评论(0编辑  收藏  举报