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容器/应用程序服务器遍历页面中的标签。
在呈现视图内容之后,保存响应状态,以便后续请求可以访问它,并且它可用于还原视图阶段。