快速业务通道

JBossSeam学习系列之三:第一个例子 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

JBossSeam学习系列之三:第一个例子

时间:2011-06-22 BlogJava The Matrix

看了Seam的例子,也看了Seam的简介,禁不住手痒,还是先做一个例子吧,遵照《seam_reference》第三章中的指导,使用JBossTool生成了自己的第一个例子,过程如下:

1、生成Sem web项目

JBossSeam学习系列之三:第一个例子 - 编程入门网

2、输入项目的相关信息,如下图:

JBossSeam学习系列之三:第一个例子 - 编程入门网

注意,如果是第一次使用Eclipse,需要配置Target Runtime和Target Server。

JBossSeam学习系列之三:第一个例子(2)

时间:2011-06-22 BlogJava The Matrix

3、然后一路next,到最后一步时,如果是第一次使用,也要注意配置Seam Runtime和Connection Profile,如下图。最后点击finish按钮,即可创建Seam项目。

JBossSeam学习系列之三:第一个例子 - 编程入门网

4、生成项目后,在Eclipse中共出现了四个项目,如下:

seamfirst (web项目)

seamfirst-ear (ear项目,集成web和ejb)

seamfirst-jar (ejb项目)

seamfirst-test (测试项目,进行单元测试)

此时运行JBossServer服务器,访问http://localhost:8080/seamfirst链接,出现如下图页面,此时Seam帮我们生成了一个框架,包含了基本的登录和退出功能,还有一个首页。

JBossSeam学习系列之三:第一个例子 - 编程入门网

JBossSeam学习系列之三:第一个例子(3)

时间:2011-06-22 BlogJava The Matrix

5、继续!使用Seam生成单表的CRUD操作。本步骤前提,有一个mysql数据库,数据库中有一个Customer表,该表有ID(int类型)、customername(varchar2类型)、customerdesc(varchar2类型)、createdate(date类型)、email(varchar2类型)五个字段。在seamfirst项目上点击右键,选择Seam Generate Entities菜单,弹出界面如下图:

JBossSeam学习系列之三:第一个例子 - 编程入门网

JBossSeam学习系列之三:第一个例子 - 编程入门网

JBossSeam学习系列之三:第一个例子(4)

时间:2011-06-22 BlogJava The Matrix

单击finish按钮后,再运行JBoss Server服务器,访问http://localhost:8080/seamfirst,发觉菜单栏上多了一个Customer List菜单,单击此链接,即可进行Customer的添加、删除、修改、查询操作,虽然生成的界面不是很好看,也不是很符合我自己的操作习惯,但是功能倒是完备。

以后若是修改了Seam提供的代码自动生成的模板,然后再使用该功能,想必生成的页面就符合自己的项目要求了,记下一笔,先不管它。

生成的代码分析:

生成的代码主要有两部分,一部分为Java代码,一部分为页面代码。

Java代码包括如下三个类:

Customer.java ---- 实体类,映射到数据库中的Customer表。

CustomerHome.java ---- SessionBean,提供了Customer类的创建、更新、删除功能。继承了org.jboss.seam.framework.EntityHome类,EntityHome类中提供创建、更新、删除等基本功能。

CustomerList.java ---- SessionBean,提供了Customer类的查询功能。继承了org.jboss.seam.framework.EntityQuery类,EntityQuery类中提供了查询功能。

CustomerHome和CustomerList类中都使用了@Name annotation,这样在页面中就可以直接访问Session Bean中的方法了,达到了Seam将表现层和业务层直接融合的目标。

页面代码包括如下文件:

Customer.xhtml

Customer.page.xml

CustomerEdit.xhtml

CustomerEdit.page.xml

CustomerList.xhtml

CustomerList.page.xml

刚开始看这段代码时,困惑我的有两个地方

一个是CustomerList.xhtml中rich:dataTable的value为"#{customerList.resultList}",customerList我明白指的是CustomerList SessionBean,但是我看遍了其代码,也没有发现有resultList属性,后来仔细一看,才发觉该属性在其父类EntityQuery中。

另一个是每一个xhtml文件都有一个对应的page.xml文件,想了半天也没整明白这是怎么回事,后来只好继续看Seam in Action的第三章,看着看着终于明白了,原来这是Seam对JSF的一个扩展,增强了JSF的功能,具体含义后面详细解释。

至此第一个使用JBossTools生成的Seam例子完成了,好像很简单 :-)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号