【Java EE】--JavaServer Faces 02

来源:互联网 发布:批量注册淘宝小号论坛 编辑:程序博客网 时间:2024/05/21 03:20

JSF–结构

JSF技术是开发,构建服务器端用户界面组件并在Web应用程序中使用它们的框架。 JSF技术基于用于将逻辑与表示分离的模型视图控制器(MVC)架构。

什么是MVC设计模式?

MVC设计模式使用三个单独的模块设计应用程序

S.NO Module & Description 1 Model
Carries Data and login 2 View
Shows User Interface 3 Controller
Handles processing of an application.

MVC设计模式的目的是分开模型和演示文稿,使开发人员能够将重点放在核心技能上,并更加清晰地协作。

Web设计师必须仅集中在视图层而不是模型和控制器层。开发人员可以更改模型的代码,通常不需要更改视图层。控制器用于处理用户操作。在此过程中,可以更改图层模型和视图。

JSF架构

JSF应用程序类似于任何其他基于Java技术的Web应用程序;它运行在一个Java servlet容器中,并且包含 :

  • JavaBeans组件作为包含应用程序特定功能和数据的模型
  • 用于表示事件处理程序和验证器的自定义标签库
  • 用于渲染UI组件的自定义标签库
  • UI组件表示为服务器上的有状态对象
  • 服务器端助手类
  • 验证器,事件处理程序和导航处理程序
  • 用于配置应用资源的应用程序配置资源文件
    这里写图片描述
    有可以用来执行用户操作的控制器。 UI可以由网页作者创建,业务逻辑可以被受管Bean使用。

JSF为渲染单个组件提供了几种机制。 网页设计人员可以选择所需的表示形式,应用程序开发人员不需要知道用于渲染JSF UI组件的机制。

JSF–生命周期

JSF应用生命周期由六个阶段组成,如下:

  • 恢复视图阶段
  • 应用请求值阶段; 流程事件
  • 过程验证阶段 流程事件
  • 更新模型值阶段; 流程事件
  • 调用申请阶段 流程事件
  • 渲染响应阶段
    这里写图片描述
    六个阶段显示了JSF处理表单的顺序。该列表显示了每个阶段的事件处理可能执行顺序的阶段。

阶段1:恢复视图

一旦点击链接或按钮并且JSF接收到请求,JSF就会开始恢复视图阶段。

在此阶段,JSF将视图,线事件处理程序和验证器构建到UI组件,并将视图保存在FacesContext实例中。 FacesContext实例现在将包含处理请求所需的所有信息。

阶段2:应用请求值

在创建/恢复组件树之后,组件树中的每个组件都使用decode方法从请求参数中提取其新值。组件存储此值。如果转换失败,将生成错误消息并在FacesContext上排队。此消息将在渲染响应阶段显示,以及任何验证错误。

如果任何解码方法事件侦听器在当前FacesContext实例上调用renderResponse,则JSF将移动到渲染响应阶段。

阶段3:流程验证

在此阶段,JSF处理在组件树上注册的所有验证器。它检查验证的组件属性规则,并将这些规则与为组件存储的本地值进行比较。

如果本地值无效,JSF会向FacesContext实例添加一条错误消息,并且生命周期进入渲染响应阶段,并再次显示与错误消息相同的页面。

阶段4:更新模型值

在JSF检查数据有效之后,它会遍历组件树,并将相应的服务器端对象属性设置为组件的本地值。 JSF将更新与输入组件的value属性相对应的bean属性。

如果在当前FacesContext实例上有任何updateModels方法调用renderResponse,JSF将转到渲染响应阶段。

阶段5:调用应用程序

在此阶段,JSF处理任何应用程序级事件,如提交表单/链接到另一个页面。

阶段6:呈现响应

在此阶段,如果应用程序正在使用JSP页面,JSF将要求容器/应用程序服务器呈现页面。对于初始请求,页面上表示的组件将被添加到组件树中,因为JSP容器执行页面。如果这不是一个初始请求,组件树已经被构建,所以不需要再添加组件。在这两种情况下,组件将自动呈现为JSP容器/应用程序服务器遍历页面中的标签。

在呈现视图内容之后,保存响应状态,以便后续请求可以访问它,并且它可用于还原视图阶段。

0 0
原创粉丝点击