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