2007-08-29

JSF框架

 

JSF学习心得之基本概念理解

前段日子接触一个项目采用了JSF框架,在开发的过程中也出现了或多或少的难题,但是毕竟计算机知识嘛,边学边用。先将体会和对它的理解写出来。与各位JSF爱好者分享分享

一、    了解基本概念

JSF 将表示和应用程序行为明确分开,JSF是一种事件驱动型的组件模型,

1、理解使用JSF的必要性

2、掌握 JSF 体系结构

3、掌握JSF 的工作方式

4、了解JSF的用户界面模型

5、理解受管理的Bean的作用

二、JSF 生命周期

JSF的每个组件基本上都是可替换的,像是转换器(Converter)、验证器(Validator)、组件(Component)、绘制器 (Renderer)等等,每个组件都可以替换让JSF在使用时更有弹性,但相对的所付出的就是组件组合时的复杂性,为此,最基本的,如果您打算自订一些 JSF组件,那么您对于JSF处理请求的每个阶段必须要有所了解。
下图是JSF处理请求时的每个阶段与简单说明,起始状态即使用者端发出请求时,终止状态则相当于绘制器发出响应时:

 

 

 

 

 

 

 

 

 

 




 

 

 

 

 

扣除事件处理,JSF总共必须经过六个阶段:
恢复视图(Restore View
  
对于选择的页面如果是初次浏览则建立新的组件树。如果是会话阶段,会从使用者端或服务器端的数据找寻数据以回复每个组件的状态并重建组件树,如果不包括请求参数,则直接跳过接下来的阶段直接绘制响应。
应用请求值(Apply Request Values)
 
每个组件尝试从到来的请求中找寻自己的参数并更新组件值,在这边会触发ActionEvent,这个事件会被排入队列中,然后在唤起应用程序阶段之后才会真正由事件处理者进行处理。 然而对于设定immeduatetrue的命令(Commamnd)组件来说,会立即处理事件并跳过之后的阶段直接绘制响应,而对于设定immediatetrue的输入(Input)组件,会马上进行转换验证并处理值变事件,之后跳过接下来的阶段,直接绘制响应。
处理验证(Process Validations
  
进行转换与验证处理,如果验证错误,则会跳过之后的阶段,直接绘制响应,结果是重新呼叫同一页绘制结果.拥有第三方验证插件
更新模型值(Update Model Values)

   更新每一个与组件绑定的backing bean或模型对象。
调用应用程序(Invoke Application)

处理动作事件,并进行后端应用程序逻辑。
呈现响应(Render Response)

使用绘制器绘制页面。

三、  体系结构

应用程序

数据

Faces

Servlet

Action

Servlet

Action

Servlet

Action

Servlet

JSF页面

Web 容器

控制器

视图

模型

四、  工作方式

FacesContext

Lifecycle

1. 创建FacesContext

2. 把控制权交给Lifecycle

3. 6个阶段处理FacesContext

FacesServlet

 

 

五、

faces-config.xml 文件中配置受管理的Bean

六、StrustJsf的区别

1Struts侧重于控制层,而JSF则侧重于表示层

2、和JSP对应的Bean不同

3、数据验证

4、控制层

5、页面导航

 

 

 

 

评论
Imagination_Fly 2007-08-29
由于一些图片看不清楚 我把WORD文档打包上传一个
Imagination_Fly
搜索本博客
博客分类
我的相册
存档
最新评论