用Seam 1.2快速原型法开发系统

来源:互联网 发布:sql语句 分类统计数量 编辑:程序博客网 时间:2024/05/21 17:22
 
Java,快速开发,似乎是绝对不相关的两个词。
J2EE,快速开发,更是似乎没可能。
 
可是,Seam 1.2就使得快速原型开发,在Java和J2EE成为可能。
而且,这个可能里,还包含了Ajax、Richface等元素。更不少EJB3.0、JSF等核心。
 
如果建好了表,Seam 1.2可以在五分钟内,生成全部代码。包括登录、权限、查询、增加、删除、修改、分页、Table排序、主从表、支持Ajax、使用到了Richface的代码。Richface组件,提供web里的Toolbar、Model Dialog(Panel)、Drag等。
 
Seam所生成的查询、维护界面,很雅致,^_~~。
 
步骤:
1. 下载Seam 1.2
http://www.jboss.com/products/seam
解压缩
2. 下载Jboss 4.0.5(EJB3.0)
   安装
3. 从Command进入Seam 1.2
如 cd jboss-seam-1.2.1.GA
然后设置项目,如seam setup,具体参考jboss-seam-1.2.1.GA/doc/reference/en/pdf下的seam_reference.pdf
 
4. seam setup后,seam new-project,建立项目
 比如c:/projects/testproject
 这个项目,在Eclipse里,new java project就加上了
 项目的关键目录
 resources下包括web-inf、meta-inf、各类配置xml和message.properties等文件
 src下包括java程序
 view下包括页面程序,是xhtml格式的
 
5.根据数据库的表生成代码,运行seam generate-entities命令
 表里要定义pk和fk。Seam会根据定义的pk,生成实体类里的@ID或者组合PK类
 如果有FK,就会生成主从表的维护界面。比如订单,会自动生成集成订单表头和明细的查询界面,为选择的订单主表增加订单明细。
 
6.登录和权限控制
 Seam生成了Authenticator.java程序,要在里面public boolean authenticate()方法里增加用户名和密码的验证逻辑代码。
 Seam生成了login.xhtml,会调用Authenticator. authenticate()来验证登陆信息。
 用户名等信息存放在Identity类里面,系统可以随时获得session里的Identity,方法是
     @In
       Identity identity;  
每个页面可以设置为登录才可以访问,只需要在页面对应的.page.xml里,设置需要login。如
<page login-required="true" >
</page>
 
7. 查询和分页
   xxxList.xhtml是自动生成的查询页面。上部是查询条件,中间是查询结果,下面是分页和增加等按钮。
   所有查询条件的参数都定义在xxxList.page.xml中,如
<page login-required="true">
   <param name="firstResult" value="#{syCtrlFieldList.firstResult}"/>
   <param name="fldName" value="#{syCtrlFieldList.syCtrlField.id.fldName}"/>
m name="fldLastSyncBy" value="#{syCtrlFieldList.syCtrlField.fldLastSyncBy}"/>
</page>
这样,Seam就会在页面跳转的时候,自动传递参数。比如
            <s:link view="/#{empty from ? 'SyCtrlField' : from}.xhtml"
                   value="Select"
                      id="syCtrlField">
                <f:param name="syCtrlFieldFldName"
                        value="#{syCtrlField.id.fldName}"/>
                <f:param name="syCtrlFieldFldTblName"
                        value="#{syCtrlField.id.fldTblName}"/>
            </s:link>
   在xxxList.java里,具体提供对查询条件和分页的支持
   里面的private static final String[] RESTRICTIONS,定义查询的sql和页面可能传入的查询条件。
   页面里的<rich:dataTable显示查询结果,其中<s:link可以对列排序。
 
总之,定义好了表结构,seam 1.2几分钟就可以生成全部的代码。包括一般的数据库程序需要的功能。做一个进销存那样的原型,也只要几分钟就可以了。
唯一要作的,是菜单,和页面的多语言(中文)
 
 
原创粉丝点击