Open-JWeb(Java Web)快速开发平台用户操作手册
王保政
Msn:baozhengw999@hotmail.com
QQ:29803446
声明:从即日2008年1月31日起,原名为CZTZ-JavaEE快速开发平台更名为Open-JWeb (RAD)快速开发平台,本平台是基于著名开源框架技术Spring,struts,webwork,hibernate,acegi,dwr编写的Java Web应用快速开发工具,为个人原创产品,基础平台1.0版着重解决增删改查的快速定制,应用此平台开发产品可以不写或者编写非常少量的代码就能实现一个增删改查的功能,另外基于acegi技术实现了全面的权限管理,并实现了与CAS单点登录产品的集成。
说明:
1、本文中的红字部分为待实现功能。蓝字部分为关键的正在开发的功能。
2、此快速平台的出现,证明了Java Web应用程序也可以进行RAD开发,也缩短了与.NET平台在快速开发方面存在的差距。
3,可从资源连接中下载本文的word版(带图片).
一、 用户登录
在浏览器地址栏输入登录页面的连接地址:http://localhost:8084/system
说明:如果服务器安装在别的地址和端口,请根据安装的地址和端口来访问登录页面。
(由于本平台与CAS单点登录进行了集成,所以按CAS单点登录配置的应用和不连接CAS的方式,两种方式访问的登录连接是不一样的,上面的连接地址是不连接CAS的访问方式。)
登录的用户名和口令:
用户名为admin,口令为123456
登录页面:
输入用户名和口令后,点登录按钮进入系统管理。
二、 数据字典类型定义
选择开发平台-系统数据管理-数据字典类型定义,此功能维护系统使用的数据字典类型,平台已预先定义了一些数据字典类型,敬请不要修改和删除。
下面是功能列表页面:
用户在使用数据字典类型定义时,可根据自己的需要来添加业务系统的数据字典类型,例如商品维护需要使用计量单位,则可以增加一个计量单位数据字典类型。
下面演示一个计量单位数据字典类型的添加过程:
点上图的“新增”按钮,显示一个新增页面:
数据字典类型输入PRO_UNIT,名称输入物品计量单位,然后保存。点“返回”按钮可返回到列表页面。
l 修改功能:
在列表页面打勾选择一行记录,点修改,进入修改页面,更改相关数据项后保存。注意如果数据字典类型字段的值被其他表引用的话,更改会失败,通常是更改数据字典类型的名称。
l 删除功能:
在列表页面可勾选多行记录,然后点“删除”功能删除记录。
关于列表页面的翻页:
所有增删改查列表页面都使用了上图的样式,点“总数”按钮显示总页数和记录数,每组显示5页连接,每页显示行数可以自己设置,默认为10。
关于列表页面的排序:
列标题栏带下划线的文字可点击排序,点击一次按点击列的升序排列,再点一次按降序排列。见下图:
关于列表页面的查询:
查询内容为下拉的查询条件字段,当选择的查询条件列为从数据字典字段取值的列或者具有代码名称对照的列如:性别-M,则右侧的字段值为一个下拉选择框,否则显示的是文本输入框,设置好条件后点“查询”即可显示查询结果。如果没有定义任何查询列,则按无查询条件进行查询。
查询内容中的下拉字段是可以配置的,即可由用户来定义这个页面哪些字段作为查询条件字段,这个功能将在表字段元数据维护功能中说明。
定制查询:可定义组合的查询条件(目前暂未实现)。
帮助:目前暂未实现。
三、 数据字典定义
功能说明:为每一数据字典类型定义数据字典集合。例如计量单位数据字典类型下可定义公斤、件、箱等物品计量单位。列表页面见下图:
以物品计量单位为例,在列表页面点“新增”按钮,进入新增页面,填写内容后保存,见下图:
四、 表基本信息维护
功能说明:
(1) 新增:增加一个表的说明,此功能维护需要说明的是,表名对应的是数据库的表名,实体类名是表对应的实体类名(包含类路径),这个类是对应此表的实体类,所以一定不要写错类名,否则在运行中可能会出错。
(2) 修改:选择一条记录修改,见下图:
(3) 删除:删除记录。
(4) 定义字段:定义一个表包含的字段,如果需要使用建表功能,则字段定义完确认无误后才可以建表(定义字段目前是单独的一个功能,见下文,此按钮暂未建立功能连接)。
(5) 生成库表:当表和表字段定义好后,点此按钮在数据库中创建表。(此功能正在开发中)。
(6) 编译部署:当表在数据库中创建以后,点编译部署后系统会自动创建Hibernate映射文件,生成相应的POJO类,及在EntityContainer类中注册此实体,并自动在功能树中创建功能节点并生成相应的增删改查页面(并自动创建访问权限)。以上操作完成后自动编译程序。此功能需要在服务器端调用。(目前此功能正在开发中)。
五、 表字段基本信息维护(列表样式)
此功能是定义一个表的字段基本信息,在快速开发平台中,此功能点非常重要,因为字段信息维护不仅定义了用于建表的字段信息,还定义了字段在维护页面中的展示样式(如输入框、下拉框),并定义此字段是否在查询条件下拉框中显示,还定义了此字段如果是数据字典取值,则对应哪个数据字典类型,动态创建功能节点将根据此字段的展示样式来创建JSP页面。
使用此功能维护数据时,可先查询出需要增加字段的表的记录,查看哪些字段已添加,然后点新增按钮定义表字段,见下图列表页面:
编辑页面:
编辑页面的字段说明:
是否查询条件列勾选项:用于设置是否在列表页中的查询条件下拉框作为查询条件列显示。
是否在列表页面展示下拉框:勾选此项后,在动态生成列表页面时此字段可在列表页面显示。
是否在编辑页面显示:勾选此项后,在动态生成编辑页面时此字段可在编辑页面显示。
编辑页面输入方式:在动态生成页面时,此字段对应的输入栏的输入方式,包括输入框、多行输入框、下拉列表、checkbox等样式,动态生成页面根据此字段的定义,在生成的页面中按定义的输入类型生成对应的页面元素。
数据字典类型:如果此字段为从数据字典表取值,这里选择对应的数据字典类型。
代码表名值对SQL:如果此字段不是从数据字典中取值,但是关联到某个表的代码列,那么此字段的值的取值范围为关联表的字段值,显示名称则为关联表对应记录的名称列,上图的SQL:select dict_type_code,dict_type_name from eas_dict_type表明此字段的取值范围是eas_dict_type表的dict_type_code字段,在下拉列表中的显示文字对应dict_type_name字段。
说明:当通过动态生成增删改查页面4,有下拉列表的列会自动根据上面定义的规则创建一个下拉列表。
六、 内容管理
内容管理的信息编辑与发布功能提供了信息的编辑与发布功能,内容编辑器为所见即所得的编辑界面,可以粘贴WORD及HTML格式的文件,可以上传图片和flash文件,信息发布后可自动生成静态的HTML页面。
此功能可用于网站CMS管理系统,博客系统可用于BLOG的发布,信息列表页面如下:
点击信息标题连接可以查看此信息发布后的静态html页面。
编辑页面的样式:
编辑页面是所见即所得的页面,可随意改变文字的大小,字体及颜色等,也可以插入图片,保存信息后自动生成静态html文件(同时也保存在数据库中)。
七、 功能菜单维护
功能说明:此功能维护动态创建的功能点,通过此功能的”生成功能代码”按钮,系统可为选择的领域对象创建一个增删改查的页面,另外自动在功能树中建立一个功能连接,并且在WEB-INF/classes的xwork.xml中增加对应的配置代码。下图是列表页面:
编辑页面:
此页面定义了一个功能点,功能名为“动态功能测试“,权限码为AUTH11,功能导航条文字及对应的维护对象,本示例为BLOG信息表维护。
如何创建功能点?在上面的列表页面选择第二条记录,点生成功能代码按钮,刷新页面时,左侧功能树在动态功能的节点下会增加新的功能节点,点此新的功能节点可以看到一个列表页,此页面不同之处在于这是通过页面模板定制动态生成出来的,在开发过程中使用模板创建页面非常快速和方便,见下图:
编辑页面也是动态创建出来的,见下图:
上图中,文字输入框和下拉列表框都是在表字段基本信息维护中定义好的输入方式,创建页面时根据定义的输入方式来生成不同的页面元素。
八、 组织结构与权限-组织结构维护
组织结构维护中维护的基本信息目前仅包括了组织结构名称和组织结构类型,因为组织结构的详细信息在具体的项目中有差异,详细信息的维护可以在二次开发中实现。
组织结构的类型在数据字段已做了定义,大致包括:公司、部门、岗位、子公司、项目组或用户组、库房、门店、人员等,甚至可以包括分销代理商、供应商、客户等。
功能树的编码由系统自动生成。
添加子节点:选择一个组织结构树节点,在此节点下增加一个子节点,如在单位下增加一个部门,或者在部门下增加一个子部门或员工。
添加同级节点:在所选节点的同一级别下增加一个兄弟节点(有共同的父节点)。
保存:保存更改(如果节点的名称改变,左侧树对应的节点名相应地改变)。
删除:删除节点(左侧树中同时删除对应的节点)。
角色授权:将指定的角色授予给一个组织结构,最常用的就是将一系列角色授予给一个人。见下图:
详细信息维护:对于公司、部门、个人的详细信息的内容是不同的,目前实现的是个人登录帐号的信息维护,在组织结构树中选择一个人,然后点击详细信息维护,系统显示用户登录帐号信息的维护页面,见下图:
用户口令在数据库中是以MD5加密的方式存储的。
查看权限:由于在设计时按照权限叠加的方式进行权限计算,所以这里列出一个组织结构的权限来源和权限汇总。同一权限ID可能从上级或上上级节点继承下来的,也可能是被另外的用户权限委托过来的,此功能正在开发中。
九、 角色基本信息维护
定义不同子系统的角色。角色是针对子系统的,权限ID也是针对子系统的,同一子系统的角色可获得属于本子系统的权限,不允许获得其他子系统的权限。下面是角色的列表页面:
编辑页面:
列表页面中的权限分配按钮功能是建立角色和权限的对照关系,点此按钮时弹出一个维护窗口:
组织结构分配功能是将角色授权给哪些组织机构,目前暂未实现,可在组织结构维护中将角色授权给组织机构。
十、 B2C用户帐号维护
业务说明:在企业的应用系统中,用户的类型有本企业内部用户、针对电子商务和ERP系统可能有供应商和客户用户及分销代理商客户,这些类型的用户量相对比较少,而对于B2C类的网站,或者博客网,特点是用户数量非常大,增长速度也很快,所以为这种类型的用户单独建表有利于保持系统性能的的稳定。对安全管理和授权管理也比较方便。这类B2C用户也可以被理解为网站会员。
十一、权限基本信息维护
此功能维护权限基本信息,一般权限的分类包括对Web资源的授权,如对某页面的访问权,对某Web目录的访问权,功能按钮的授权,功能连接的操作权限,业务方法的权限,领域对象权限(数据权限)等,此权限的权限编码统一以AUTH_作为前缀,此权限集合可授权给角色,而角色与用户是关联的,因而用户可间接得到一个权限集合。本平台集成了Acegi安全框架,使用的权限集合就是此功能维护的数据。
十二、Web资源授权
此功能是一个非常重要的权限控制功能,可在运行时动态地将一个WEB资源的访问权限授予给指定的权限ID,也可以收回。权限更改后在约两分钟后生效,不需要重新启动应用,见下图:
上面的编辑界面将web应用的testcase目录下的所有资源(如jsp页面,其他文件等)
的访问权限授予给AUTH_USER和AUTH_ADMIN权限,如果登录用户没有这两个权限中的一个权限则不能访问testcase 目录下的所有内容。从列表页中看出,index.jsp被授予给了AUTH_USER用户。利用acegi强大的权限管理功能,可以建立一个功能非常权限的权限管理系统。
十三、综合查询
(1)综合查询后台维护-数据源定义:
定义综合查询报表、图表使用到的数据源:
业务说明:
企业的综合查询系统是关联到多个数据源的,这里定义报表、图表的综合查询需要访问的数据源的连接方式。
(2)报表/图表定义
定义报表/图表使用的数据源,相应的SQL语句,图表展示样式(如二维饼图,三维直方图等)等,列表页面:
综合查询图表:
平台的示例中包括了:机组日发电量统计、机组发电量对比分析、机组月份发电量统计、机组日发电量条形图、机组发电量三维饼图,查询日期请从2007年1月1日开始(demo数据只有一月份的)。
执行查询后的图形:
(1) 机组日发电量统计曲线图
(2) 机组发电量对比分析
(3)机组月份发电量统计
(4)机组日发电量条形图
(5)机组发电量三维饼图
综合查询-报表:
报表是基于JasperReport开发的报表,其中生成出来的报表直接按照PDF格式展示(正常支持中文),可在功能树中点综合查询(报表)下的报表功能点,在页面中点执行查询(按条件检索的功能正在进行开发)。
十三、其他说明
以上开发的内容从2007年11月19日开始,到2008年1月18日截止,利用业余时间开发,历时两个月时间,产品命名为Open-JWeb,版本为1.0版,主要实现了增删改查快速开发功能和权限管理,这个将作为JavaWeb应用快速开发的最基础的平台,以后的业务平台,工作流平台,BI工具等将在继续在此基础上进行开发。基础平台与其他平台应该是松耦合的。
本平台在技术上采用了Spring+struts+webwork+hibernate+acegi+dwr技术,其中针对树形列表的页面及在线编辑器部分采用了struts控制层,增删改查的控制层和页面采用了webwork作为核心控制层。
本文介绍了本平台的使用说明,产品平台的开发手册在另外的文章里介绍。