简介:JavaServer Faces(JSF)技术是一种服务器端框架,它提供一种基于组件的 Web 用户 界面开发方式。JSF 1.2(集成在 Java Enterprise Edition 5 中)纠正了 JSF 的一些缺陷并添加了一 些出色的特性。这个教程系列讨论如何使用 JSF 1.2。本系列偏重示例,较少解释理论 — 这是为 了帮助您尽快开始使用 JSF。
开始之前
关于本系列
这个教程系列讨论 JavaServer Faces(JSF)技术的基础知识。JSF 是一种用于 Java Web 应用程序 的服务器端用户界面组件框架。本系列针对 JSF 的新手,帮助他们快速入门 — 使用 JSF 并不是必需的 ,但是使用 JSF 组件可以减少工作量。本系列只讨论基础知识并提供大量示例。
与 AWT、SWT 和 Swing 一样,JSF 是一种比较传统的 GUI 开发环境。它的主要好处之一是,它将困 难的工作交给框架开发人员而不是应用程序开发人员,从而简化了 Web 开发。坦率地说,JSF 本身比许 多其他 Web 框架复杂,但是它对应用程序开发人员隐藏了复杂性。与大多数其他框架相比,用 JSF 开发 Web 应用程序要容易得多:需要的代码更少,复杂性更低,配置更少。
如果您从事 Java 服务器端 Web 开发,那么 JSF 是最容易掌握的框架。它非常适合创建 Web 应用程 序(不是 Web 站点本身)。它让 Web 开发人员可以集中精力处理 Java 代码,而不需要处理请求对象、 会话对象、请求参数或复杂的 XML 文件。与其他 Java Web 框架相比,使用 JSF 可以更快速地做更多事 情。
关于本教程
本教程介绍一种基本的 JSF 开发方法。在本教程中,不使用工具或 IDE 支持(尽管工具支持是 JSF 的主要好处之一)。我们将要进行纯粹的编程!我只介绍基本知识,从而帮助您理解这里的讨论内容并有 效地使用 JSF 构建 Web 应用程序。您会惊奇地发现,即使不使用 IDE 工具,JSF 开发也比其他 Java Web 框架容易。
目标
在本教程中,我将概述 JSF 的特性并讲解如何编写基本的 JSF 应用程序。我将构建一个简单的计算 器应用程序,逐步改进它的外观和感觉,修改它的结构来添加依赖性注入,以及实现 JSF 的导航机制。 在第 2 部分中,将构建定制的转换器、检验器和阶段监听器。
谁应该学习本教程?
如果您是 JSF 的初学者,那么本教程正适合您。如果您用过 JSF,但是没有用过 JSF 1.2 特性,或 者只用 GUI 工具构建过 JSF 应用程序,那么也可能从本系列教程学到许多知识。
前提条件
本教程适合初级或中级水平的 Java 开发人员。您应该基本了解 Java 语言并拥有一定的 GUI 开发经 验。
系统需求
要运行本教程中的示例,您需要一个 Java 开发环境(JDK)和 Apache Maven。拥有 Java IDE 会有 所帮助。本教程提供了 Maven 项目文件以及 Eclipse Java EE 和 Web Tools Project(WTP)项目文件 。
JSF 基础
与 Swing 和 AWT 一样,JSF 也是一种开发框架,它提供一套标准的、可重用的 GUI 组件,用来构建 Web 应用程序的界面。JSF 具有以下优点:
完全地隔离行为和表示
能够对有状态进行组件级控制
能够轻松地将事件连接到服务器端代码
使用大家熟悉的 UI 组件和 Web 层概念
提供多种标准的供应商实现
出色的 IDE 支持
典型的 JSF 应用程序由以下部分组成:
用来管理应用程序状态和行为的 JavaBean
有状态 GUI 组件
事件驱动的开发(像传统 GUI 开发一样通过监听器)
表示 Model-View-Controller(MVC)视图的页面;页面通过 JSF 组件树引用视图根(view root)
为了使用 JSF,可能需要克服一些概念方面的障碍,掌握这些概念是很值得的。JSF 的组件状态管理 、易用的用户输入检验、细粒度的基于组件的事件处理以及可轻松扩展的体系结构,这些概念会大大简化 Web 开发。本节详细解释最重要的 JSF 特性。