暂时为未经过审阅的初稿,有翻译不当,请提出意见。[email protected]
前言:本文章翻译自JCP的jsf-2_0-pfd-spec.pdf。
JavaServer Faces(JSF)是Java Web 应用程序开发的UI框架。被设计用来减少开发和管理Java应用程序服务器端程序的,并且将UIs渲染至目标客户端,JSF提供以下简化的方法:
n 可以简单的从一系列的可以利用的UI组件创建UI
n 轻松的实现应用程序与UI之间的数据转换
n 协助在服务器的requests中管理UI的状态
n 提供简单的模型用来将客户端生成的事件转化为服务器端的应用代码
n 允许更简单的创建可重用的UI组件
更重要的是,JSF。JSF可以涵盖几乎所有的开发人员,从corporate developer至systems programmer。Corporate developer是指开发程序代码和业务逻辑,但是不一定具有面向对象的编程的能力。System programmer是指具有面向对象的编程的基础,包括具有抽象设计的可复用对象的能力。Corporate developer习惯于使用工具进行开发,system programmer可能习惯于使用像文本编辑器写代码。
因此,JSF可以使用工具来进行开发,或者是作为框架,使用APIs来脱离工具进行开发,以适应system programmers的需求。
JSF的核心架构就是设计独立于专门的协议或者是标记。故可以解决许多在基于HTTP进行通讯的以HTML为客户端的基于servlets和JSP进行开发的通用的问题。这些应用都是典型的以form为基础,包括一个或者是多个HMTL页面用来完成一个或者是多个任务。JSF处理了下列的关联:
n 管理requests中的UI组件状态
n 支持隐藏不同浏览器与客户端之间的差异
n 支持form处理(多页面)
n 提供强壮的类型事件模型以允许应用创建服务器端的处理客户端产生的事件(独立于HTTP)
n 校验请求的数据以及提供正确的错误报告
n 进行类型转换,将String类型的数据转换成应用中的对象(通常是非String对象)
n 处理错误和异常,并且将错误转换为便于应用程序用户阅读的信息
n 处理response中UI事件和模型之间页面至页面的导航
此JavaServer Faces Specification以及JSF这项技术,不同的对象将以不同的方式使用这些信息。以下的章节将会描述这些,这些包括从不同的方面使用JSF的角色,他们将使用这些中使用这些文档。
(具体对象的描述请参阅原文)
本节将简单的介绍API的主要功能,具体的功能介绍将在以后的对其API介绍的章节中具体阐述。
包含JavaServer™ Faces API中的顶级类。其中最重要的类是FactoryFinder,用户可以自己实现从而覆写许多值片段。
参见11.2.6.1 “FactoryFinder”。
包含用来链接作为应用程序逻辑对象至JavaServer Faces,还可以提供插件机制来管理基于JSF的应用 。主类是Application。
参见7.1 “Application”。
包含用户界面组件API。
参见第2章“用户界面组件模型”
包含具体的类用来组合组件和渲染。
包含类和接口用来定义每个request范围的状态信息,其主类为FacesContext,是所有的每个request信息的切入点,除此之外,还是其它Helper类的入口。
参见6.1 “FacesContext”
包含(convert)转换的类和接口。其主类是Converter。
参见3.3 “转换模型”
与JSF1.2一样,所有的类和接口都已经废弃,请使用JSP2.1中的EL。
参见第5章“EL以及Managed Bean facility”
包含JSF实现中生命周期管理的类和接口。其主类是Lifecycle,是处理Request生命周期的入口。
参见第2章“Request processing Lifecycle”
包含描述事件以及事件监听器的接口以及具体的事件实现类。所有的组件级别事件继承自FacesEvent,所有的组件级事件监听器继承自FacesListener。
参见3.4 “事件以及监听器模型”
包含定义渲染模型的类和接口。主类是RenderKit,RenderKit维护涉及到Render实例集合的关系,提供渲染到指定的客户设备类型的能力。
参见第8章 “渲染模型”
校验模型的接口以及具体的校验的实现类。
参见3.5“校验模型”
将JSF溶入Web应用所需要的类,包含一个标准的servlet,JSP定制组件标签的基本类,以及具体的核心标签的实现。
参见第11章“在Web应用中使用JSF”