1. 简介
1.1. 概述
本文档的PDF为 |HERE|。
本文的示例可查阅 |HERE|。
本文拟通过示例
- Java Server Faces 2 框架(JSF2),
- 以及适用于 JSF2 的 PrimeFaces 组件库,这些内容适用于桌面和移动应用程序。
本文主要面向对 PrimeFaces 和 [http://www.primefaces.org] 组件库感兴趣的学生和开发人员。该框架提供了数十个支持 AJAX 的 [http://www.primefaces.org/showcase/ui/home.jsf] 组件,可用于构建外观和行为与桌面应用程序相似的 Web 应用程序。 PrimeFaces 基于 JSF2 构建,因此有必要首先介绍该框架。此外,PrimeFaces 还提供了专门针对移动设备的组件,我们也将对此进行介绍。
为说明我们的观点,我们将构建一个预约应用程序,并在不同环境中进行演示:
- 基于 Glassfish 3.1 服务器,采用 JSF2 / EJB3 / JPA 技术的经典 Web 应用程序,
- 采用 PrimeFaces 技术实现的同款 AJAX 化应用,
- 最后,采用 PrimeFaces Mobile 技术的移动版本。
每次构建完一个版本后,我们将将其移植到 Tomcat 7 服务器上的 JSF2 / Spring / JPA 环境中。因此,我们将构建六个 EE Java 应用程序。
本文档仅介绍构建这些应用程序所需的必要内容。因此,请勿期待其内容面面俱到——您也确实无法在此找到完整的解决方案。本文档亦非最佳实践汇编。经验丰富的开发人员可能会发现,他们本可以采取不同的做法。我仅希望本文档至少不是一份不良实践的汇编。
若需深入了解 JSF2 和 PrimeFaces,可参考以下资料:
- [ref1]:Java EE5教程[http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML],这是Sun官方的Java入门参考资料EE5。 阅读II和[Web Tier]部分,以了解Web技术,特别是JSF。教程中的示例可供下载,它们以NetBeans项目形式提供,可加载并运行,
- [ref2]:《Core Faces》作者:David Geary 和 Cay S. Horstmann,第三版,McGraw-Hill 出版社,
- [ref3]:PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf] 的文档,
- [ref4]:PrimeFaces Mobile([http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf])的参考资料。
我们有时会提及 [ref2],以提示读者可通过该书深入了解相关领域。
本文档的编写旨在让尽可能多的读者能够理解。理解本文档所需的先决条件如下:
- 掌握 Java 语言,
- 掌握Java开发的基礎知識 EE。
[http://developpez.com]网站提供了满足这些先决条件所需的所有资源。部分资源可在[http://tahe.developpez.com]网站上找到:
- [ref5]:《基于Servlet和JSP页面的Java Web编程入门》(2002)(2002年9月):介绍 Java Web 编程的基础知识:Servlet 和网页 JSP,
- [ref6]: 通过实例学习Java MVC Web开发基础(2006)(2006年5月)[ ]:建议采用三层架构开发Web应用程序,其中Web层实现设计模式(Design Pattern)MVC(模型、视图、控制器)。
- [ref7]:使用 NetBeans IDE 和 GlassFish 应用服务器入门 Java EE (2012)(2010年6月)。本文档帮助读者了解 Java 1 及 Java 5。
- [ref8]:Java 5 持久化实践指南 (2007)(2007年6月)。本文档介绍了如何使用JPA(Java持久化API)实现数据持久化。
- [ref9]:使用 NetBeans 6.5 IDE 和 GlassFish Java EE 服务器构建 Java EE Web 服务 (2009)(2009年1月)。本文档探讨了Web服务的构建过程。 本文所探讨的示例应用程序源自 [ref9]。
1.2. 示例
本文的示例可查阅 |HERE|:
![]() |
要在 NetBeans 中导入项目:
![]() |
- 在 [1] 中,打开一个项目,
- 在 [2] 中,指定文件系统中要打开的项目,
- 在 [3] 中,项目已打开。
在Eclipse中,
![]() |
- 在 [1] 中,导入一个项目,
- 在 [2] 中,该项目是一个现有的 Maven 项目,
![]() |
![]() |
- 在 [3] 中:在文件系统中指定该项目,
- 在 [4] 中:Eclipse 将其识别为 Maven 项目,
- 在 [5] 中,即导入的项目。
1.3. 使用的工具
接下来,我们将使用(2012年5月):
- NetBeans 7.1.2(集成开发环境),可在 URL [http://www.netbeans.org] 处获取,
- IDE Eclipse Indigo [http://www.eclipse.org/](其定制版为 SpringSource 工具套件(STS)[http://www.springsource.com/developer/sts],
- PrimeFaces(3.2 版本)可在 URL [http://primefaces.org/] 中获取,
- PrimeFaces Mobile 0.9.2 版本,可在 URL [http://primefaces.org/] 中获取,
- WampServer 适用于 SGBD、MySQL 和 [http://www.wampserver.com/]。
1.3.1. 安装 IDE NetBeans
本文介绍 NetBeans 7.1.2 的安装,该版本可在 URL、[http://netbeans.org/downloads/] 中获取。
![]() |
我们可以选择上述版本的 Java EE,其中包含 Glassfish 3.1.2 和 Apache Tomcat 7.0.22 两个服务器。 前者支持使用 EJB3(企业级 Java Bean)开发 Java 应用程序 EE,而后者支持在不使用 EJB 的情况下开发 Java 应用程序 EE。 随后我们将用 Spring 框架 [http://www.springsource.com/] 替换 EJB。
下载 NetBeans 安装程序后,将其运行。为此需要安装 JDK(Java 开发工具包)和 [http://www.oracle.com/technetwork/java/javase/overview/index.HTML]。除了 NetBeans 7.1.2 之外,还将安装:
- 用于单元测试的 JUnit 框架,
- Glassfish 3.1.2 服务器,
- Tomcat 7.0.22 服务器。
安装完成后,启动 NetBeans:
![]() |
- 在 [1] 中,NetBeans 7.1.2 包含三个标签页:
- [Projects] 标签页显示已打开的 NetBeans 项目;
- [Files] 标签页显示构成当前打开的 NetBeans 项目的各个文件;
- [Services] 标签页汇集了 NetBeans 项目中使用的若干工具;
- 在 [2] 中,激活 [Services] 选项卡,并在 [3] 中激活 [Servers] 分支,
- 在 [4] 中,启动 Tomcat 服务器以验证其安装是否正确,
![]() |
- 在 [6] 中,通过 [Apache Tomcat] 和 [5] 选项卡,可验证服务器是否已正确启动,
- 在 [7] 中,停止 Tomcat 服务器,
按照相同步骤验证 Glassfish 3.1.2 服务器的安装是否成功:
![]() |
- 在 [8] 中,启动 Glassfish 服务器,
- 在 [9] 中,验证其是否已正确启动,
![]() |
- 在 [10] 时,将其停止。
现在我们有一个可运行的 IDE。我们可以开始构建项目了。根据这些项目,我们将详细介绍 IDE 的不同特性。
接下来我们将安装 IDE Eclipse,并在其中注册刚刚下载的 Tomcat 7 和 Glassfish 3.1.2 这两台服务器。为此,我们需要了解这两台服务器的安装目录。这些信息可在两台服务器的属性中找到:
![]() |
- 在 [1] 中,Tomcat 7 的安装目录为,
![]() |
- 在 [2] 中,Glassfish 服务器的域名文件夹。在 Eclipse 的 Glassfish 配置中,只需提供以下信息:[D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish]。
1.3.2. Eclipse 的安装
尽管本文档中使用的并非 Eclipse,但我们仍将介绍其安装过程。实际上,文档中的示例也以 Eclipse 的 Maven 项目形式提供。Eclipse 本身并未预集成 Maven。 为此需要安装一个插件。与其安装原版Eclipse,我们将安装SpringSource工具套件[http://www.springsource.com/developer/sts],该版本的Eclipse预装了大量与Spring框架相关的插件,同时也预装了Maven配置。
![]() |
- 访问 SpringSource Tool Suite 网站 (STS) [1],以下载 STS [2A] [2B] 的最新版本,
![]() |
![]() |
- 下载的文件是一个安装程序,它会生成文件树 [3A] [3B]。在 [4] 中,运行可执行文件,
- 在 [5] 中,关闭欢迎窗口后显示 IDE 的工作窗口。在 [6] 中,显示应用程序服务器窗口,
![]() |
- 在 [7] 中,显示服务器窗口。已注册一台服务器。这是一台 VMware 服务器,我们不会使用它。在 [8] 中,调用添加新服务器的向导,
![]() |
- 在 [9A] 中,系统提供了多种服务器选项。我们选择安装 Apache 的 Tomcat 7 服务器 [9B],
![]() |
- 在 [10] 中,我们指定了随 NetBeans 安装的 Tomcat 7 服务器的安装目录。如果没有 Tomcat 服务器,请使用按钮 [11],
- 在 [12] 中,Tomcat 服务器将出现在 [Servers] 窗口中,
![]() |
- 在 [13] 中,我们启动服务器,
- 在 [14] 中,服务器已启动,
- 在 [15] 中,将其停止。
在 [Console] 窗口中,如果一切正常,将获得以下 Tomcat 日志:
![]() |
- 仍在 [Servers] 窗口中,添加一个新服务器 [16],
- 在 [17] 中,Glassfish 服务器未被列出,
- 此时,请使用链接 [18],
![]() |
- 在 [19] 中,选择为 Glassfish 服务器添加适配器,
- 该适配器下载完成后,返回 [Servers] 窗口,添加新服务器,
- 此时在 [21] 中,系统会提供 Glassfish 服务器选项,
![]() |
- 在 [22] 中,选择随 NetBeans 一起下载的 Glassfish 3.1.2 服务器,
- 在 [23] 步骤中,指定 Glassfish 3.1.2 的安装目录(请注意 [24] 中显示的路径),
- 若未安装 Glassfish 服务器,请使用按钮 [25],
![]() |
- 在 [26] 步骤中,向导会要求输入 Glassfish 服务器的管理员密码。首次安装时,通常为 adminadmin,
- 当向导完成后,在 [Servers] 窗口中,Glassfish 服务器将显示为 [27],
![]() |
- 在 [28] 中,启动它,
- 在 [29] 中可能会出现问题。这取决于安装时提供的信息。Glassfish 需要 JDK(Java 开发工具包),而不是 JRE(Java 运行时环境),
- 要访问 Glassfish 服务器的属性,请在 [Servers] 窗口中双击它,
- 随后将打开 [20] 窗口,在其中点击 [Runtime Environment] 链接,
![]() |
- 在 [31] 中,我们将默认使用的 JRE 替换为 JDK。为此,我们使用链接 [32],
- 在 [33] 中,将机器上已安装的 JRE,
- 在 [34] 中,再添加一个,
![]() |
- 在 [35] 中,选择 [Standard VM](虚拟机),
- 在 [36] 中,选择 JDK (>=1.6),
- 在 [37] 中,将新文件命名为 JRE,
![]() |
- 回到针对 Glassfish 的 JRE 选择界面,我们选择新声明的 JRE(即 [38]),
- 配置向导完成后,重新启动 [Glassfish] 和 [39],
- 在 [40] 中,它已启动,
![]() |
- 在 [41] 中,显示服务器目录结构,
- 在 [42] 中,访问 Glassfish 日志:
![]() |
- 在 [43] 中,我们停止 Glassfish 服务器。
1.3.3. 安装 [WampServer]
[WampServer]是一套用于在Windows机器上基于PHP / MySQL / Apache进行开发的软件包。 我们将仅将其用于 SGBD 和 MySQL。
![]() |
- 在 [WampServer] [1] 网站上,选择合适的版本 [2],
- 下载的可执行文件是一个安装程序。安装过程中会要求提供各种信息。这些信息与MySQL无关,因此可以忽略。 安装完成后将显示 [3] 窗口。运行 [WampServer],
![]() |
- 在 [4] 中,[WampServer] 的图标将安装在屏幕右下角的任务栏中 [4],
- 点击该图标后,将显示菜单 [5]。该菜单用于管理 Apache 服务器以及 SGBD 和 MySQL。 要管理该服务器,请使用选项 [PhpPmyAdmin],
- 此时将显示如下窗口,

关于 [PhpMyAdmin] 的使用,我们将不做过多详细说明。我们仅演示如何使用它来创建本教程示例应用程序的数据库。






























