在使用Rational Application Developer 8.5.1创建JPA实体中 ,您使用IBM®Rational®Application Developer从IBM®DB2®数据库快速生成和定制JPA实体,并将它们部署到IBM®WebSphere®Application Server。
在此后续文章中,您将通过以下方式扩展Acme Membership应用程序:
- 从现有的JPA Bean生成JPA Manager Bean,以协助数据检索。
- 使用JPA Manager Bean创建JavaServer Faces(JSF)facelet网页以查看信息。 您将使用Rational Application Developer的Rich Page Editor中提供的丰富的小部件库来创建facelet。
在你开始前
您将在本文中执行的任务和步骤从使用Rational Application Developer 8.5.1创建JPA实体开始的地方开始,在继续之前,您需要首先完成构建Acme Membership应用程序的步骤。
您将继续使用:
- IBM®Rational®Application Developer版本8.5.1
- IBM®WebSphere®Application Server版本8.5.0.2(通过使用Rational Application Developer附带的WebSphere Test Environment)
- 适用于Microsoft®Windows®的IBM®DB2®Enterprise Server Edition数据库,版本10.1,修订包2
注意:
在安装Rational Application Developer 8.5和WebSphere Application Server 8.5之后,使用IBM Installation Manager查找修订包和其他维护更新并将其应用于您的安装,以符合此处描述的级别。
将JavaServer Faces功能添加到您的Web项目
您的Web项目需要合并一个方面,以向其管理员显示Acme成员资格记录。
要编写facelet,需要将JSF facets添加到现有的Web项目AcmeMembershipApplicationWeb中 。
- 在Web透视图中的Enterprise Explorer视图中,右键单击AcmeMembershipApplicationWeb项目,然后选择Properties 。
- 在左侧的属性列表中,选择Project Facets 。
- 选中Project Facets列表中JavaServer Faces旁边的复选框,确保版本设置为2.0 ,如图1所示,然后单击OK 。
注意:
您将看到一条消息,指示进一步的配置可用。 您可以忽略此消息,因为您无需更改默认的JSF实现库。
图1.添加Java Server Faces构面
![选择选项以将JavaServer Faces构面添加到Web应用程序](https://i-blog.csdnimg.cn/blog_migrate/c4179c2bfa29fdc950ee9ec2917a4a2d.png)
将命名查询添加到您的JPA bean
Web应用程序的方面需要向Acme Inc.的成员资格管理员显示成员资格列表。 您将向现有的JPA Membership Bean添加一个简单的命名查询,以检索所有成员记录。
- 在Web透视图中的Enterprise Explorer视图中,右键单击AcmeMembershipApplicationDomain项目,然后选择JPA Tools> Configure JPA Entities 。
- 在“可用的JPA实体”列表中,选中“ 成员资格 ”旁边的复选框,然后单击“ 下一步” 。
- 在底部左列的任务列表中,选择“ 命名查询”,然后单击“ 添加”按钮。
- 对于此简单的命名查询,您将不会添加任何过滤器或对返回结果施加任何顺序。 保留对话框的其余默认值,然后单击“ 确定” 。
- 点击完成 。
打开Membership JPA bean,注意添加了新的Named Query注释,如图2中突出显示。
图2.使用@NamedQuery批注更新的JPA Bean
从您的JPA Bean创建JPA Manager Bean
JPA Manager Bean提供了一个方便的抽象层,用于处理JPA编程步骤,这些步骤可通过现有JPA Bean从基础数据存储区创建,检索,更新和删除数据。
这项有价值的功能使您摆脱了需要与JPA编程模型和API进行深入交互的编程步骤。
JPA Manager Beans支持是Rational Application Developer专有的,并且是IBM承诺提供快速发展的令人信服的方式之一,从而使您的团队更加高效。
- 在Web透视图中的Enterprise Explorer视图中,右键单击AcmeMembershipApplicationDomain项目,然后选择JPA Tools> Add JPA Manager Beans 。
- 在“可用的JPA实体”列表中,选中“成员资格”旁边的复选框,然后单击“ 下一步”。
- 在左下方底部的任务列表中,选择其他 。
- 在主窗格中,选择“ 我希望容器将持久性单元注入到我的bean单选按钮中”,如图3所示。
- 点击完成 。
图3:容器管理持久性的选项
![您希望您的JPA Manager Bean允许容器管理持久性](https://i-blog.csdnimg.cn/blog_migrate/f8e0fa060e85abfd1d9ae8589b9dd190.png)
在Java或Java EE透视图的Enterprise Explorer视图中,展开AcmeMembershipApplicationDomain \ src ,以查看新的软件包org.acme.membership.domain.controller。
这个新程序包包含新生成的JPA Manager Bean MembershipManager。
创建一个方面以显示Acme Inc.会员记录
创建面
要创建facelet,请执行以下步骤:
- 在Web透视图中,在Enterprise Explorer视图中,右键单击AcmeMembershipApplicationWeb项目,然后选择New> Web Page 。
- 输入
listMemberships
作为文件名。 - 确保在“模板”列表框中选择了Facelet 。
- 点击完成 。 Rich Page Editor将打开新面,以供您开始构建。
将JPA数据小部件添加到Facelet
您将使用“ JPA数据”小部件来生成Faceface的代码,以在专业表中显示数据存储中的数据列表。
JPA Data小部件从JPA Manager Bean调用服务以查询JPA Bean,这些JPA Bean负责从数据存储中获取所需的信息。
- 在Palette视图中展开Data and Services抽屉,然后单击JPA Data小部件,如图4所示。
图4.将JPA Data小部件添加到facelet
![在RAD广泛的选板上找到JPA数据小部件的位置](https://i-blog.csdnimg.cn/blog_migrate/a965e50c20f720d1a20d748cbeff7cbb.png)
- 单击Rich页面编辑器上的任意位置以将JPA数据小部件“拖放”到您的facelet上。 该操作将启动“将JPA数据添加到页面”向导。
- MembershipManager应该是列出的唯一可供选择的JPA Manager Bean。 确保选中了“ 检索数据列表”单选按钮,然后单击“ 下一步” 。
- 在“选择JPA查询”页面的“查询方法”列表框中,getMembership应该是唯一可用的命名查询。 选择它,然后单击下一步 。
选择数据表的数据,格式和标题名称
为了满足用户对会员资格进行专业报告的要求,您将通过仅选择用户希望查看的字段,更改字段显示的顺序并为该字段指定更有意义的名称来影响数据表的特性。每个字段的标题名称。
- 在“配置数据控件”页上的“要显示的字段”列表框中,取消选中“ membershipType”和“ 从属”复选框,以从报告中排除此数据。
- 更改字段在报告中显示的顺序。
- 选择primaryMember行,然后单击向上箭头以重新定位该行以显示在id行下方。
- 选择membersince行,然后单击向上箭头以重新定位该行,以显示在primaryMember行下方。
- 为报表中的字段提供易于理解的标签。 单击id字段的Label值,然后将标签从Id更改为
Membership ID.
图5.配置数据表的布局
图5显示了更改的效果,这些更改排除了某些字段,更改了其他字段的顺序,并在“将JPA数据添加到页面”向导的“配置数据控件”页面中为表的列提供了用户友好的标签。
注意:
复杂数据字段可以通过显示在字段右侧的省略号按钮来识别,并且可以对其进行进一步的调整。
- 更新复杂字段primaryMember 。
- 单击primaryMember字段右侧的省略号按钮 。 在打开的对话框中,取消选中除firstname和lastname之外的所有字段的复选框。
- 单击“名字”字段的“ 标签”值,然后将标签从“名字”更改为“
First name
。 - ,点击姓氏字段标签值后,改变姓氏的标签
Last name
。 - 点击完成 。
- 更新复杂日期字段memberince和lastrenewaldate 。
- 单击membersince字段右侧的省略号按钮 。 在打开的对话框中,取消选中除time以外的所有字段的复选框。
- 单击时间字段的标签值,然后将标签从时间更改为
Member since
。 - 点击完成 。
- 单击lastrenewaldate字段右侧的省略号按钮 。 在打开的对话框中,取消选中除time以外的所有字段的复选框。
- 单击时间字段的标签值,然后将标签从时间更改为
Last renewed on
。 - 点击完成 。
运行你的面
运行facelet以查看系统中的成员资格。
- 在Web透视图中的Enterprise Explorer视图中,展开AcmeMembershipApplicationWeb> WebContent 。
- 右键单击您的facelet listMemberships.xhtml ,然后选择Run As> Run on Server 。
- 如果出现“在服务器上运行”对话框向导,请选择位于localhost的WebSphere Application Server v8.5 ,然后选中“ 运行此项目时始终使用此服务器”复选框,然后单击“ 完成” 。
WebSphere服务器启动后,它将运行您的facelet。 您的方面应列出Acme成员资格系统中的成员资格。
图6:在facelet中呈现的数据表
![您的数据表呈现在面中](https://i-blog.csdnimg.cn/blog_migrate/f83e7ca54dd6f71e1513adc105266588.png)
在图6中,您可以看到列顺序和列标题标签与使用JPA Data小部件及其相应的向页面向导添加JPA数据时所做的调整匹配。
注意:
您可能会看到具有不同Membership ID的相同成员资格条目,并重复了与上一篇文章中运行AddMembershipServlet servlet相同的次数。
摘要
本文解释了如何使用Rational Application Developer来生成JPA Manager Bean,以供JSF facelet网页用来呈现信息。
JPA Manager Bean易于使用Rational Application Developer的向导向导生成,并且使您摆脱了使用JPA API以编程方式直接查询JPA Bean的任务,从而大大提高了生产率。
Rational Application Developer的Rich Page Editor也通过提供广泛而强大的拖放小部件调色板来构建专业网页来简化但增强了Web开发体验。 在本文中,使用JPA Data小部件意味着Rational Application Developer消除了通过JPA Manager Bean从JPA Bean检索和呈现数据所需的所有编码工作。
致谢
作者感谢Hamid Kalantari对本文的评论和周到的贡献。