无需编写Java代码就能生成增删改查功能的CZTZ-JavaEE平台介绍
王保政
QQ:29803446
也许大家不会相信会有不用写Java代码就能生成增删改查功能的Java应用开发平台,但CZTZ-JavaEE Web快速开发平台的确实现了这一点。如果说中国应用软件的开发水平仍停留在手工作坊的时代,那么本平台的问世将至少可以否认这个观点。也许,中国应用软件的开发模式会因为此类平台的出现而有很大的变化----不懂编程的人员也可以通过平台定制自己的应用。项目的研发、实施周期大大缩短。不再有低水平的重复开发,软件组件的复用将会被发挥到极致。
从我个人的观点看,此平台的问世比SOA来说,更能给企业带来更大的实惠,如果没有一个快速开发平台为企业所用,除了高额的开发成本之外,还有漫长的开发周期,往往企业的应用还没开发完,业务已经发生了变化,一个后台增删改查的功能模块,如果让一个程序员不用平台自己开发的话,一般要至少花费2天时间,因为一个功能点就包括:查询列表、分页实现、排序实现、开发编辑页面、为有些字段开发从数据库检索出来的下拉列表,等等。
而通过本平台的定制功能,几分钟就可以设置好一个功能的参数,点一个按钮,程序就自动为你生成增删改查页面,这就是平台的强大之处!
下文介绍使用本平台定制一个增删改查页面的具体步骤。
定制增删改查页面的前提条件是,你所要操作的数据库表已经生成,而且对应的hibernate的hbm.xml文件和实体类已经生成,另外需要在org.apache.easframework.core.entity. EntityContainer.java中声明此实体类,如:
private CmsBlog cmsBlog;
public void setCmsBlog(CmsBlog entity)
{
this.cmsBlog = entity;
}
public CmsBlog getCmsBlog()
{
return this.cmsBlog;
}
这就是要做的前提工作,(本平台对所有实体都使用了一个BaseAction进行控制,而不是一个实体对应一个action,减少了大量的代码)。
接下来,打开D:/easdev/jakarta-tomcat-
<Context path="/system" docBase="D:/easdev/project01/src/001core/web" debug="1" reloadable="false" crossContext="true">
<ResourceLink name="jdbc/mysql" global="jdbc/mysql" />
<ResourceLink name="jdbc/shem" global="jdbc/shem" />
</Context>
将reloadable=”false”中的false改为true,这样在定制功能时xwork.xml发生变化时,容易能自动重载配置文件。
下面以一个简单的表cms_blog为例:
在表字段基本信息维护功能中,定义此表的字段,下图是定义好了cms_blog字段的列表页面:
其中,blog_class字段被定义成了下拉列表的输入方式,此字段对应一个数据字典类型(本例选择了应用系统编号数据字典类型,用于测试生成的编辑页面是否为下拉形式),见下图:
在测试cms_blog的页面生成时,可以将编辑页面输入方式改为文本框、文本区域、checkbox分别测试一下,可以看出通过程序生成的编辑页面的blog_class字段的展现样式有相应的变化。
下面介绍如何生成cms_blog对应的功能页面:
选择功能树中的动态功能-功能菜单维护,点新增,在新增页面的实体类中选Blog信息表(博客)(注意不要选择其他的,因为其他表对应的JSP是平台已开发好的,实际使用时可以通过此功能来生成用户新定义的表),实际上对应的就是cms_blog,保存后返回列表页面,勾选新增加的记录,见下图:
点生成功能代码,生成完毕后在浏览器中刷新一下以在功能树上显示新增的功能,见下图:
点动态功能测试,进入生成出来的列表页面,见下图(动态生成出来的列表页面,此页面为module/platform/listCmsBlog.jsp),
选中一行,点修改,进入由程序生成出来的编辑页面(对应module/platform/editCmsBlog.jsp):
可以看到blog分类字段是下拉的输入方式,如果在表字段基本信息维护中定义此字段为文本框或checkbox,也会按照定义生成对应的输入样式,在这个页面上修改字段的值,保存。
以上是通过程序动态生成新的功能点的编辑页面和列表页面,可以看到新生成的功能包括了增删改查的完整实现。
除了动态生成了一个列表页和编辑页的JSP(生成过程中会保存同名文件,后缀加上.bak),另外Webwork的xwork.xml的变化(在WEB-INF/classes下),程序自动添加了对应的action配置:
<action name="listCmsBlog" class="org.apache.easframework.core.webwork.action.BaseAction">
<result name="input">/module/platform/editCmsBlog.jsp</result>
<result name="success">/module/platform/listCmsBlog.jsp</result>
<result name="select">/listCmsBlog.action?operate=selectPageList</result>
<result name="edit">/module/platform/editCmsBlog.jsp</result>
<result name="showList">/module/platform/listCmsBlog.jsp</result>
<param name="serviceName">DBSupportService</param>
<param name="keyFieldName">objId</param>
<param name="entityClassName">org.apache.easframework.core.entity.CmsBlog</param>
<param name="codeColumns"></param>
<param name="sortColumns"></param>
<param name="titleBar">系统管理,平台开发,动态功能测试</param>
<param name="actionName">listCmsBlog</param>
<param name="editTitle">动态功能测试</param>
</action>
<!-- insert new action -->
注意不要更改<!-- insert new action -->行,因为程序通过此行识别插入点,切记!
<完>