基于MVC的Struts在财务系统中的应用 - 编程入门网
s相关的特殊信息配置的描述文件。
基于MVC的Struts在财务系统中的应用(2)时间:2010-09-22Struts框架下的财务系统的设计与实现 整个项目由财务系统、物流系统和客户管理系统三个部分构成,由于财务的结算业务与采购、出入库和销售等物流环节都存在着一定的联系,因此,财务系统功能的实现以及维护的方便与否对于整个项目的成败起着致关重要的作用。 财务系统主要包括与结算相关的业务处理,如供货商结算、客户结算、返款处理、各种帐簿的查询、科目表的维护等等。下面以客户结算为例说明Struts框架下系统的设计与实现。 用户选择客户结算子菜单后进入客户结算页面,在该页面上需填入客户名称、销售单编码、费用的支付方式以及详细的收款信息。其中客户名称和销售单编码支持模糊查询功能;支付方式包括现金、银行、预收款三种方式,可点选输入;详细的收款信息包括业务员姓名或编码、总的结算金额、登录帐簿。以上信息均填写完毕后,可点击提交,若填写的信息符合结算条件,则经业务处理逻辑处理后,系统向用户显示结算单页面,若提交不成功,则显示错误信息。Web组件之间信息的转发关系如图2所示 图2 CtmBForm作为ActionForm Bean可以在视图和控制器之间传递HTML表单,其属性与表单中的字段是一一对应的,CtmBForm的Validate()方法可以完成与表单的数据格式和语法相关的有效性检查,如销售单编码、结算金额不能为空等。 Struts框架的核心控制器组件ActionServlet的doGet()或doPost()方法在收到用户请求后都会调用其process()方法处理请求。首先选择能够处理当前请求的子应用模块,并在request范围内写入配置信息和消息资源;之后完成一些预处理请求操作,在预处理请求操作的尾部创建并保存CtmBAction实例,并调用CtmBAction实例的execute()方法,该方法再调用相应模型进行实际的业务逻辑处理,完成用户的请求;最后根据execute()方法返回的结果执行请求转发或重定向。 在系统中模型由EJB组件实现,系统多层结构的设计如图3所示: 图3 基于MVC的Struts在财务系统中的应用(3)时间:2010-09-22CtmBEJB作为一种JNDI资源运行在EJB容器中,在多层结构中CtmBEJBDelegateImpl业务代理实现类无法创建CtmBEJB组件,而是通过查找名为“ejb/CtmBEJB”的JNDI资源获得该资源的引用。 IctmB接口的作用是削弱客户程序与模型的关系,客户程序通过该接口来访问EJB组件的业务方法。 CtmBAction对EJB组件进行调用的时序图如图4所示: 图4 在多层结构中,业务对象BO主要封装了一些实体,如客户CustomerBO、销售单SalesSlipBO、结算单BalancingSlipBO、应收款帐AccountsReceivableBO、预收款帐PreReceivingBO、现金帐CashAccountBO和银行帐BankAccountBO等等。图5所示为上述七个业务对象之间的关联关系,以及部分业务对象的属性和方法: 图5 数据访问对象(Data Access Object,简称DAO)是实现持久化框架的一种设计模式,它的引入可以削弱业务处理逻辑和数据库访问之间的联系,它一方面可以将对业务对象BO的处理转化为对数据库的操作,另一方面也可以把查询数据库的结果映射为业务对象BO。DAO提供了对关系数据库操作的接口,如创建数据库,定义表、索引,对表进行增、删、改、查询等操作。系统选用了OJB软件,它是一种采用DAO设计模式实现的持久化框架。 结束语 Struts为Web应用程序的开发提供了框架结构,JSP页面中不包含任何业务逻辑,控制器组件ActionServlet可使用Struts框架所提供的,开发人员只需将大部分精力集中到实际业务逻辑的处理,这样有利于快速有效的开发出Web应用程序。Struts框架下用户显示、控制逻辑和业务处理逻辑相分离,若业务需求发生变化则主要修改用于处理业务逻辑的EJB或JavaBea |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |