引言
本文是这一系列文章的第三部分,将展示 WebSphere Studio V5.1.1 提供的 Server Faces Technology Preview 的特征。这一系列文章包括以下几个部分:
第 1 部分:创建 JSF Web 项目和页面模板。
第 2 部分:创建 JSF 提交表单。
第 3 部分:创建通过 Web Data Objects(WDO,很快就会成为 SDO:Service Data Objects)访问数据的 JSF 应用程序。
第 4 部分:使用 Action Handlers 和 JavaBean Data 组件集成 JSF 应用程序与 Enterprise Java Bean。
第 5 部分:使用 Web Service Proxy 组件创建 JSF Web 服务客户端。
在第 2 部分中,我们看到了如何利用快速应用程序开发(Rapid Application Development,RAD)Java Server Faces(JSF)组件来创建 JSF 表单。在第 3 部分中,我们将看到 JSF 可以如何利用 Web Data Object(WDO)技术来访问数据。WDO 是 IBM 针对新兴的 Service Data Object(SDO)标准先期推出的一种技术,当前在 Sun Java Community Process 内,Service Data Object(SDO)正作为 JSR 235 进行开发。JSF 和 SDO 构成了强大的组合,使得 Web 应用程序能够以可视化的方式与企业数据交互,并且这种交互是在兼顾了良好的设计的前提下进行的。
您将需要下载本文所提供的材料以学习并完成本次练习。第 2 部分中的练习的答案包含在下载文件中,如果您没有完成练习的话,您可以打开这个文件看一看。您可以按照第 2 部分中的说明导入此 EAR 文件。
要运行此示例,我们首先需要创建一个数据库。我们这里使用的是 DB2,但是包含了数据库脚本,这是考虑到您可能需要使用 DB2 作为不同的数据库的模型。在创建了数据库之后,我们将使用 WebSphere Studio 来创建一个 WDO 组件,并把它拖放到一个显示页面中。我们将使用内置单元测试环境(UTE)来测试该应用程序,于是在最后,您将看到 JSF 如何通过应用验证到 Stock History 表单而拥有一个内置验证框架。
设置数据库
您在开始练习前需要创建一个数据库。要创建一个 DB2 数据库,请执行以下步骤:
如果您还没有下载,那么请下载本文的下载 部分所提供的材料和数据库脚本。
打开 DB2 命令窗口。您可以通过 Windows Explorer 来完成这一步(图 1)。
图 1. 打开 DB2 命令窗口
切换到您解压缩 ZIP 文件的目录并转到 \JSFArticleSeries\Part3\DBScript。
输入命令 CreateWSTrade(图 2)。这样将创建所需的数据库表。(我们使用 db2admin/db2admin 作为 用户 ID/密码;如果您想要更改它,您可以编辑 CreateWSTrade.bat 文件。)
图 2. 创建数据库表
要检验是否正确地安装了数据库,请从 DB2 命令窗口连接到数据库,为此,您可以输入(图 3):db2 connect to WSTRADE user db2admin using db2admin
图 3. 连接到数据库
输入命令:db2 select * from WSTRADE.STOCKHISTORY。您将获得一些返回结果,类似于图 4。
图 4. 数据库查询
关闭 DB2 命令窗口
使用 JSF/WDO 组件创建 JSP
我们现在准备要创建我们的第一个 JSF 表单。应该从最后一个实验室打开您的 WebSphere Studio 工作区。
首先,我们将要创建一个新的 JSF 页面,该页面将显示提交一个股票历史(Stock History)查询的结果。
从 Web 透视图,展开 PersonalTradeJSF Web 项目,然后右键单击 WebContent 文件夹,再选择 New = Faces JSP File(图 5)。
图 5. 项目导航
将 JSP 文件命名为 viewStockHistory.jsp,选取 Create from page template,然后按一下 Next。(图 6)
图 6. 创建 Faces JSP 文件
在下一个对话框,确保选择了 StockPageTemplate.jtpl,然后选择 Finish。
图 7. 创建 Faces JSP 文件
accessStockHistory 页面储存了在请求作用域输入的代码值。由于 accessStockHistory 将转发到 viewStockHistory 页面,后面的页面将能访问该输入页面并把代号传送给 WDO 对象。
确保在编辑器中 viewStockHistory 是激活的 JSP。在 Page Data 视图中,添加一个新的 requestScope 变量(图 8)。
图 8. 页面数据
变量名称是 symbol 而类型是 java.lang.String(图 9)。这应该与提交页面上的信息一致。选择 OK。
图 9. 添加 Request Scope 变量
图 10. requestScope 结果