struts简单案例-适合初学者(三)

说明:具体案例的分析,详细的分析在讲解的过程中再阐述(这份案例大约在04年已经完成,所以现在看起来难免有些不符合时代潮流,领会精神即可)

概要

主要针对表department操作,创建、更新、删除、选择

层次结构说明

共分为四层:mid、midimpl、application、presentation

一般开发基于MVC结构的应用来说,层次的划分是很重要的,三层结构、于至于多层结构的演变有其一定的道理。MVC本身就是模型、视图、控制的层次划分,这样有助于职能的明确,加快开发效率,最重要的是系统的把握度和可扩展的能力。

当然这里的四层划分,不是绝对的,根据不同的项目可以有不同的调整,只是作为一个参考,这是一个实际项目中保留下来的,有其一定的科学性。

mid:接口和抽象类部分,是相对系统底层的功能的集中体现,相对共通性部分

midimpl:是对mid层的具体现实

application:具体业务逻辑、模型

presentation:表述层,struts的具体实现部分

具体为何如此划分层次,会具体讲解,也请大家考虑一下。

下面具体讲解StrutsSample的各个组成

mid

DAOFacTory:是采用了工厂模式来实现的,其间又有DAO模式。

功能:得到DAOFacToryImpl(DAOFacTory的具体实现)实例,并提供了两个abstract

方法,在DAOFacToryImpl必须得以实现。

DepartmentDAO:操作表department的接口,定义了一些对表的基本操作

midimpl

DAOFacToryImpl: DAOFacTory的具体实现,在DAOFacTory中的两个abstract方法也得以实

现:init()方法,取得数据源。getDepartmentDAO()方法,得到接口DepartmentDAO的具体实例DepartmentDAOImpl。除了要必须实现的方法外,还定义了getConnection()方法,以取得对数据源的连接。

DepartmentDAOImpl:接口DepartmentDAO的具体实现,表的操作具体实现。

application

Department:定义了一个数据bean,可以对照数据表department,发现是对应它的一个对象的实现。

DepartmentBO:定义了这个应用程序中所需要的业务逻辑,比如selectDepartment(String depid)方法,根据一个部门的ID来获得该部门的详细数据、createDepartment()、updateDepartment()、 deleteDepartment()分别对应创建、更新、删除

presentation

DepartmentForm.:Form. Bean表单,收集JSP页面上的元素。可以发现它和application层的Department类是类似的,因为Form表单所收集的数据真好是对应数据库中的字段的。(这只是个比较特殊的例子而已,开发中不一定都是这样的,这里同时引申出一个问题,居然两个类是类似的,为什么不合并一下,就用其中的一个类的,这样不是还可以节省一个类吗?)

CreateDepartmentAction:创建部门的Action类

DeleteDepartmentAction:删除部门的Action类

ListDepartmentAction:所有部门的一个列表

SelectDepartmentAction:选择一个部门

UpdateDepartmentAction:更新部门的Action类

资源文件

ApplicationResources.propertiesJSPindex.jspCreate–register.jsp–success.jsp–failure.jsplist–departmentList.jsp–failure.jspupdate–update.jsp–failure.jspstruts-config.xmltype=”cn.haose.struts.presentation.CreateDepartmentAction”name=”departmentForm”scope=”request”input=”/create/register.jsp”>type=”cn.haose.struts.presentation.ListDepartmentAction”>type=”cn.haose.struts.presentation.SelectDepartmentAction”>type=”cn.haose.struts.presentation.DeleteDepartmentAction”>type=”cn.haose.struts.presentation.UpdateDepartmentAction”name=”departmentForm”scope=”request”input=”/update/update.jsp”>web.xml.sampleactionorg.apache.struts.action.ActionServletconfig/WEB-INF/struts-config.xml1action*.doindex.jsp/WEB-INF/struts-bean.tld/WEB-INF/struts-bean.tld/WEB-INF/struts-html.tld/WEB-INF/struts-html.tld/WEB-INF/struts-logic.tld/WEB-INF/struts-logic.tldDB Connectionjdbc/SAMPLEjavax.sql.DataSourceContainer

数据源

Tomcat 中的 server.xml

facToryorg.apache.commons.dbcp.BasicDataSourceFacTorydriverClassNameoracle.jdbc.OracleDriverurljdbc:oracle:thin:@hao-se:1521:haoseusernametest1passwordtest1maxActive10maxIdle1maxWait-1

那么威尼斯就是一艘轻盈和流动的舟船,

struts简单案例-适合初学者(三)

相关文章:

你感兴趣的文章:

标签云: