APP下载

Struts 框架技术在管理信息系统中的应用

2012-08-15殷旻昊

科技视界 2012年11期
关键词:配置文件开源视图

殷旻昊 党 光 王 波

(天津师范大学信息化办公室 中国 天津 300387)

0 引言

当前管理信息系统在业务逻辑上日益复杂,并且对系统可维护性、可扩展性以及系统移植性的要求越来越高,因此新系统的设计开发大多倾向于采用MVC 设计模式。 而在诸多MVC 框架中,Struts 作为一款开源框架, 建立在动态网站设计领域中JSP、XML 及Servlet 等相关开发技术之上, 成为J2EE Web 开发的首选。

1 MVC 及Struts 概述

1.1 MVC 设计模式

MVC 即Model-View-Controller,模型—视图—控制器模式。 早期Web 应用系统开发中,业务逻辑和视图界面通常是耦合在一起的,比较适用于规模较小,业务简单且变化较少的情况,但随着应用系统业务逻辑日趋复杂,用户界面大量增加, 同时在系统健壮性、 代码可重用性的要求越来越高,MVC 模式在软件开发效率方面的优势日益凸显,因而得到广泛应用。MVC 强制性的使应用程序的输入、处理和输出分开,将其划分成三个相对独立的层次:模型层、视图层和控制器层,从而降低了复杂的耦合关系,实现界面与应用逻辑的有效分离。

1.2 Struts 框架

Struts 由Apache 软件组织负责开发, 其实质是在JSP Model2 基础上实现的一个MVC 开源框架, 其中模型部分由JavaBean 或EJB 组件构成, 视图部分由Jsp 文件和Struts 客户化标签组成,控制器部分由ActionServlet 和Action 类来完成。 由于是一款开源框架,文档丰富且源代码公开,并且具备丰富的Taglib 标签库, 页面导航性强, 对MVC 有良好的实现,在业界J2EE 架构中有广泛的应用。

2 案例具体应用

2.1 系统整体框架设计

案例系统为某管网管理系统,包含日志管理、权限管理、数据维护、查询统计、报表输出等多个模块。 由于该系统从页面展现到逻辑处理均较为复杂, 开发人数较多且周期较长,并且有扩展性、健壮性方面的要求,采用Struts 框架开发是比较好的选择。 在案例系统整体框架中, 除Struts 框架负责MVC 三部分的分离外,根据系统开发的需要还需引入Spring框架以实现控制反转和面向方面编程,Hibernate 框架以实现数据的对象持久化和对象关系映射,DWR 框架以实现对页面的监听和异步处理,加强对视图部分细粒度的支持。

2.2 Struts 框架具体应用

在案例系统Struts 框架应用中, 控制器方面由ActionServlet 类和具体的Action 类来实现。ActionServlet 作为核心组件,主要负责接受HTTP 请求信息,并根据对应配置文件的信息把请求转发给适当的Action 对象,而Action 类负责调用模型层(案例系统中使用JavaBean 实现)的方法更新模型状态。Struts 框架应用中,3 个文件的配置是其中的关键,分别为web.xml、struts-config.xml 及消息资源文件。

web.xml 文件是整个Web 工程的配置文件, 由于Struts框架是系统运行的基础框架, 因而对Struts 的配置是该文件最重要的内容, 主要包括对servlet、 servlet-mapping 以及taglib 元素的配置。 其中servlet 和servlet-mapping 元素用于指定ActionServlet 接受请求并确定如何响应,taglib 元素则用于声明Web 应用所使用的Struts 标签库及开发者自定义的标签库。

Struts-config.xml 文件是Struts 框架的配置文件, 用于对Struts 框架中用到的控制器、视图和模型进行配置。 由于案例系统子模块功能较为复杂,Struts-config.xml 中仅配置了系统全局性的数据,如data-sources 元素配置数据源,指定数据库驱动类、URL 及访问数据库的用户名、密码等,global-forwards元素配置全局请求转发路径,message-resources 元素定义了Resource Bundle 使用的资源文件等, 其他如form-beans、action-mapping 元素均只定义系统的页面登录, 涉及具体应用的form 及action 设置均在子模块所属的Struts-xx-config.xml 中进行配置。

Struts 框架通过消息资源文件来支持国际化和本地化,通常需要手动处理将其设置为支持中文, 否则会显示乱码,案例系统由于采用Eclipse 平台作为开发环境, 平台自带的ResourceBundEditor 插件可自动对消息资源文件进行重编码,相对手动处理而言使用起来更加直观方便。

2.3 其他框架应用

Spring 框架作为一个松耦合的开源框架, 其Spring Core与Spring Aop 模块在对控制反转和面向方面编程有突出的创新型和实用性,非常适用于案例系统的开发。 其配置需在web.xml 文件的filter 元素及listener 元素分别定义过滤器类和监听器类,还需在context-param 元素中定义对应的Spring配置文件。 Hibernate 框架作为一款数据持久化的开源框架,为案例系统提供对象与关系数据库的映射,并以统一的接口方式支持多种数据库,其配置也在web.xml 文件的filter 元素中定义。

3 结束语

案例系统开发过程中采用Struts 框架及相关技术, 其丰富的标签库在页面展示方面起到突出作用,并且由于比较彻底的实现了页面与逻辑的分离,在版本更迭过程中极大提高了工作效率,该系统在用户需求发生较大变动后仍按期完成开发工作,目前已经正式运行,得到用户的认可。

[1]Husted, Cedric Dumoulin. Struts In Action [M]. Manning Publications Co, 2002, 5.

[2]莫勇腾.深入浅出设计模式:C#/Java 版[M].北京:清华大学出版社,2006.

[3]计磊,李里,周伟.精通J2EE-Eclipse Struts Hibernate Spring 整合应用案例[M].北京:人民邮电出版社,2006(8).

猜你喜欢

配置文件开源视图
五毛钱能买多少头牛
忘记ESXi主机root密码怎么办
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
打印机设置
开源计算机辅助翻译工具研究