首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

JSF 向导 用 JSF 2 和 CDI 实现一个向导-1

JSF 向导 用 JSF 2 和 CDI 实现一个向导-1

Java™ Enterprise Edition (Java EE) 6 包含了很多像 JSF 2 这样功能强大的技术。Contexts and Dependency Injection(CDI)是这些技术中的一个,它在很大程度上标准化了在其他框架酝酿多年的一些概念。
在本文中,我向您展示如何综合使用 JSF 2 和 CDI 来实现一个在线小测验向导。CDI 为我带来了依赖注入、producer 方法和一个 conversation 作用域。我使用了这三者来实现一个向导,您可以轻松地将其用于任何一个多选的在线测试。
关于本系列 系列是 David Geary 的  的后续系列,将像一位功夫大师一样帮助您开发和提升您的 JSF 2 框架技能。本系列将深入探究 JSF 2 及其生态系统,同时还将介绍如何将一些 Java EE 技术,如 Contexts and Dependency Injection,与 JSF 相集成。

本系列并非只关注于 CDI。我将介绍如何:
  • 使用 facelets 模板来最小化代码并最大化重用
  • Ajax 化向导以便获得更为顺畅的用户体验
  • 使用 CDI 的依赖注入来简化代码
  • 实现并使用 CDI producer 方法来在视图中无缝地使用 beans
  • 利用 CDI 的 conversation 作用域来实现多请求用户用例
本文中的全部示例源代码均可下载得到。请参见  侧栏获得下载链接以及指向部署指导的一个指针。
测验向导图 1 显示了运行中的这个测验向导:
图 1. 测验向导最初,这个应用程序只包含一个可开启向导的单独链接:<h:commandLink value="#{msgs.startWizard}" action="#{wizard.start}"/>。这个链接的文本(Start the wizard)来自一个属性文件并由该链接值内的 msgs.startWizard 表达式代表。国际化是 JSF 101 circa 2004,所以我在这里就不再过多涉及这些细节了。只需注意到整个应用程序都是本地化了的就足够了,并且所有字符串均从 messages.properties 文件拉出。
运行示例代码本系列的代码基于的是在一个企业容器中(比如 GlassFish 或 Resin)运行的 JSF 2。参见 “”,获取使用 GlassFish 安装和运行本系列代码的分步教程。参见  部分获取本文的示例代码。

Start the wizard 链接会将用户带到这个测验向导页面,在这里,用户会被提问,一次一个问题,如  底部的两个图片所示。我通过一些简单的 Ajax 和一个服务器端 bean 控制此向导按钮的启用状态,我在本文的  部分将向您详示。
图 2 显示了最后的一个问题,后跟用户答案的一个总结。当用户处于最后一个问题时,只有 Finish 按钮是启用的;单击该按钮会将用户带到总结页面。
图 2. 总结页面了解了这个测验向导如何工作后,我将向您展示它是如何实现的。
返回列表