暂时为未经过审阅的初稿,有翻译不当,请提出意见。jimmy.shine@gmail.com
前言:本文章翻译自JCP的jsf-2_0-pfd-spec.pdf。
1 概述
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的需求。
1.1 解决Web实际开发中的问题
JSF的核心架构就是设计独立于专门的协议或者是标记。故可以解决许多在基于HTTP进行通讯的以HTML为客户端的基于servlets和JSP进行开发的通用的问题。这些应用都是典型的以form为基础,包括一个或者是多个HMTL页面用来完成一个或者是多个任务。JSF处理了下列的关联:
n 管理requests中的UI组件状态
n 支持隐藏不同浏览器与客户端之间的差异
n 支持form处理(多页面)
n 提供强壮的类型事件模型以允许应用创建服务器端的处理客户端产生的事件(独立于HTTP)
n 校验请求的数据以及提供正确的错误报告
n 进行类型转换,将String类型的数据转换成应用中的对象(通常是非String对象)
n 处理错误和异常,并且将错误转换为便于应用程序用户阅读的信息
n 处理response中UI事件和模型之间页面至页面的导航
1.2 针对的对象
此JavaServer Faces Specification以及JSF这项技术,不同的对象将以不同的方式使用这些信息。以下的章节将会描述这些,这些包括从不同的方面使用JSF的角色,他们将使用这些中使用这些文档。
(具体对象的描述请参阅原文)
1.3 JSF API简介
本节将简单的介绍API的主要功能,具体的功能介绍将在以后的对其API介绍的章节中具体阐述。
1.3.1 package javax.faces
包含JavaServer™ Faces API中的顶级类。其中最重要的类是FactoryFinder,用户可以自己实现从而覆写许多值片段。
参见11.2.6.1 “FactoryFinder”。
1.3.2 package javax.faces.application
包含用来链接作为应用程序逻辑对象至JavaServer Faces,还可以提供插件机制来管理基于JSF的应用 。主类是Application。
参见7.1 “Application”。
1.3.3 package javax.faces component
包含用户界面组件API。
参见第2章“用户界面组件模型”
1.3.4 package javax.faces.component.html
包含具体的类用来组合组件和渲染。
1.3.5 package javax.faces.context
包含类和接口用来定义每个request范围的状态信息,其主类为FacesContext,是所有的每个request信息的切入点,除此之外,还是其它Helper类的入口。
参见6.1 “FacesContext”
1.3.6 package javax.faces.convert
包含(convert)转换的类和接口。其主类是Converter。
参见3.3 “转换模型”
1.3.7 package javax.faces.el
与JSF1.2一样,所有的类和接口都已经废弃,请使用JSP2.1中的EL。
参见第5章“EL以及Managed Bean facility”
1.3.8 package javax.faces.lifecycle
包含JSF实现中生命周期管理的类和接口。其主类是Lifecycle,是处理Request生命周期的入口。
参见第2章“Request processing Lifecycle”
1.3.9 package javax.faces.event
包含描述事件以及事件监听器的接口以及具体的事件实现类。所有的组件级别事件继承自FacesEvent,所有的组件级事件监听器继承自FacesListener。
参见3.4 “事件以及监听器模型”
1.3.10 package javax.faces.render
包含定义渲染模型的类和接口。主类是RenderKit,RenderKit维护涉及到Render实例集合的关系,提供渲染到指定的客户设备类型的能力。
参见第8章 “渲染模型”
1.3.11 package javax.faces.validator
校验模型的接口以及具体的校验的实现类。
参见3.5“校验模型”
1.3.12 package javax.faces.webapp
将JSF溶入Web应用所需要的类,包含一个标准的servlet,JSP定制组件标签的基本类,以及具体的核心标签的实现。
参见第11章“在Web应用中使用JSF”
分享到:
相关推荐
在“JSF_20101108.pdf”中,可能会详细讲解JSF 2.0版本的特性、最佳实践以及与先前版本的区别。 **EJB(Enterprise JavaBeans)** EJB是Java EE平台的一部分,用于构建可部署在服务器上的企业级组件。EJB提供了事务...
6. **JSF 2.0**:JavaServer Faces的升级,引入了Facelets作为默认视图技术,支持自定义标签,提供了更友好的编程模型。此外,它还支持 Partial State Saving 和 Ajax 功能,提升了用户体验。 7. **WS(Web ...
2. **统一的声明式标签库**:JSP 2.1引入了JSR 199(JavaServer Pages Specification),实现了与JSF(JavaServer Faces)等其他技术的更好集成,统一了声明式标签库的处理方式。 3. **自定义标签库简化**:JSP 2.1...
4. **Faces 2.0(JSF)**:JavaServer Faces 2.0提供了更丰富的用户界面组件和改进的事件处理模型,使得创建交互式Web界面更为简单。 5. **Java Persistence API 2.0 (JPA 2.0)**:JPA2.0带来了更强大的数据访问...
- **JavaServer Faces (JSF) 2.0 (JSR 314)**:改进了用户界面组件模型,支持富客户端应用的开发,并增强了开发效率。 - **Bean Validation 1.0 (JSR 303)**:为 Java EE 应用提供了一种声明式的验证方式,简化了...
FastInfoset-1.2.12.jar,geronimo-javamail_1.4_spec-1.7.1.jar,geronimo-jaxws_2.2_spec-1.1.jar,geronimo-jms_1.1_spec-1.1.1.jar,geronimo-servlet_3.0_spec-1.0.jar,hibernate-annotations.jar,hibernate-...
JSP 2.1版本是在2006年发布的,它在JSP 2.0的基础上进行了增强和改进,提供了更高效、更灵活的开发方式。这个技术规范涵盖了JSP的语法、生命周期、内置对象、表达式语言(EL)、自定义标签库(Tag Libraries)以及与...
struts2-jsf-plugin-2.3.15.3.jar struts2-json-plugin-2.3.15.3.jar struts2-junit-plugin-2.3.15.3.jar struts2-osgi-admin-bundle-2.3.15.3.jar struts2-osgi-demo-bundle-2.3.15.3.jar struts2-osgi-plugin-2.3....