3.1分析应用需求
在该应用中,主要事件包括:
(1)提供用户登录界面,提示用户输入用户名和密码,并能够对用户在客户端输入的数据进行简单的数据格式验证。若登录成功,转入主操作界面,否则给出错误提示信息,重新登录。
(2)由主操作界面转入物业管理费录入界面,用户在表单中输入相关信息(用户ID、日期),提交表单。若提交表单成功,则转入确认界面,显示用户输入的信息。
(3)由主操作界面转入查询界面,用户输入相关信息后,查询出某段时间内该用户的物业管理费用。
(4)用户退出系统,返回主菜单页面。
3.2 该应用的具体设计
3.2.1 数据库设计
针对该应用,需在数据库中创建两张表:PORPERTY_TABLE和USER_TABLE,各表结构如下:
表1 USER_TABLE
|
字段 |
类型 |
说明 |
|
UserName |
char(25) |
记录登录到系统的用户名 |
|
Password |
char(25) |
记录登录用户的登录密码 |
表2 PORPERTY_TABLE
|
字段 |
类型 |
说明 |
|
OwnerID |
char(8) |
记录唯一表示每个用户的ID |
|
Date |
datetime(8) |
记录缴费日期 |
|
RAre |
float(8) |
记录用户的房屋面积 |
|
Charge |
float(8) |
记录应该缴纳的物业管理费 |
|
FeeState |
char(20) |
显示用户是否缴费 |
3.2.2 设计模型组件
在Struts框架中,模型组件负责完成业务逻辑。在该应用中,模型组件包括一个实用类DbConnect和两Jave Bean:UserBean和PorpertyBean。
实用类DbConnect负责建立和数据库的连接,所提供的connectToDb()方法具体来实现和数据的连接并返回这个连接。UserBean代表用户信息,包括UserName和Password这两个属性。PorpertyBean代表物业费用信息,包括OwnerID、Data、OwnerName等几个属性。这两个JavaBean提供了相应的get/set方法,此外还负责查询以及向数据库中对应的表添加/查询记录。
3.2.3 用户界面设计
用户界面是Web应用和用户的窗口,既可以接受用户的输入信息也可以向用户输出信息。表3列出了该应用中用到的用户界面及其说明。
表3 用户界面及其说明
|
界面 |
说明 |
|
Welcome界面(index.jsp) |
显示欢迎光临信息,提供到登入界面的链接 |
|
登入界面(logon.jsp) |
提示输入用户名和密码 |
|
主操作菜单界面(mainmenu.jsp) |
提供系统所有操作菜单 |
|
物业收费数据录入界面(input.jsp) |
提示输入有关物业费用相关信息 |
|
收费确认界面(confirmation.jsp) |
根据用户录入的信息返回该用户物业费用的所有信息(如:应缴的费用,是否已缴费等) |
|
物业费查询界面(search.jsp) |
提供用户输入相关查询条件 |
|
显示查询结果界面(display.jsp) |
根据用户查询条件显示查询结果 |
为保持该应用中所有界面风格的一致性,在设计上述这些界面的过程中,我们除了使用标准的JSP<include>语句外,还使用了Struts的Titles框架来创建复合式的JSP页面,使所有界面具有相同的页头和页脚。
3.2.4设计ActionForm
ActionForm Bean用于在视图组件和控制器组件之间传递HTML表单数据。通常每个HTML表单对应一个ActionForm Bean,每个ActionForm的validate( )方法用于实现对用户输入数据进行格式和语法检查。在该应用中包含三个ActionForm Bean:LogonForm、InputForm和SearchForm。
3.2.5 设计Action和Action映射
在Struts框架中,Action实现各个事件的流程控制,Action映射决定Action与其他web组件之间的关联关系。表4列出了该应用中用到的Action、每个Action的入口(调用Action的组件)、传递给Action的ActionForm以及每个Action把请求转发到的目标组件即出口。
表4 该应用中的Action
|
Action |
入口 |
ActionForm |
出口 |
|
LogonAction |
logon.jsp |
LogonForm |
mainmenu.jsp |
|
InputAction |
input.jsp |
InputForm |
confirmation.jsp |
|
SearchAction |
search.jsp |
SearchForm |
display.jsp |
|
LogoffAction |
mainmenu.jsp |
无 |
index.jsp |
图3给出了该应用中Action组件与其它组件的映射关系图。

图3 Action映射图
上述所有Action组件需要在Struts的配置文件struts-config.xml中配置其映射关系。
4 应用Struts框架的优点
(1)整个物业管理系统包括上百个文件,若采用传统的结构,要弄清楚某个视图是使用什么模型来处理逻辑是件很复杂的事。而采用Struts框架来开发的应用系统,依靠JSP和Struts-config.xml以及它们间的统一命名规则却很容易地进行系统流程的查勘、修改和理解。只要根据视图Form表单的Action,在配置文件中找到同名的Action定义,就可以得知其路径以及相应的FormBean。
(2)Struts中所有逻辑处理都封装在class内,视图部分不再介入逻辑的处理,计算和显示清楚地分开了,在JSP页面上没有出现处理过程,在Servlet或商业逻辑中没有数据格式。并且基于Struts框架开发出的JSP代码也很简洁,JSP页面中不含有Java代码,只含有Script和使用Struts标签库的HTML,页面开发人员不必为修改视图而必须先理解模型,很大程度上提高程序开发效率。
5 结束语
Struts是一个实现良好的MVC框架,在现代软件开发中,越来越多的应用于大型Web应用系统的开发。基于Struts框架的小区物业管理系统的顺利开发,也证实了Struts框架是一种非常优秀的J2EE/MVC实现方式。该物业管理系统将为小区物业管理部门提供一个全新的工作环境,给物业管理的日常工作带来了极大的方便,提高了工作效率,具有很好的推广价值和应用前景。
参考文献
1钟珞,潘昊.现代软件工程学[M].北京:国防工业出版社,2004
2钟珞.软件工程重点综述与试题分析.北京:中国民航出版社,2000
3 James Turner, Kevin Bedell 著, 孙勇 译.Struts Kick Start[M]. 北京:电子工业出版社, 2004
4孙卫琴编著. 精通Struts:基于MVC模式地Java Web设计于开发[M].北京:电子工业出版社