一、 什么是Struts 调用需要的业务逻辑方法 检测或处理其他错误 路由控制到相关视图 上面这样简单的描述,初学者可能会感到有些难以接受,下面举个比较具体的例子来进一步帮助我们理解。如:假设,我们做的是个电子商务程序,现在程序要完成的操作任务是提交定单并返回定单号给客户,这就是关于做什么的问题,应该由Action类完成,但具体怎么获得数据库连接,插入定单数据到数据库表中,又怎么从数据库表中取得这个定单号(一般是自增数据列的数据),这一系列复杂的问题,这都是解决怎么做的问题,则应该由一个(假设名为orderBo)业务对象即Model来完成。orderBo可能用一个返回整型值的名为submitOrder的方法来做这件事,Action则是先校验定单数据是否正确,以免常说的垃圾进垃圾出;如果正确则简单地调用orderBo的submitOrder方法来得到定单号;它还要处理在调用过程中可能出现任何错误;最后根据不同的情况返回不同的结果给客户。 二、为什么要使用Struts框架 既然本文的开始就说了,自己可以建这种框架,为什么要使用Struts呢?我想下面列举的这些理由是显而易见的:首先,它是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,它是个开源项目得到了包括它的发明者Craig R.McClanahan在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架显示出很好的融合性。如,现在,它已经与tiles融为一体,可以展望,它很快就会与JSF等融会在一起。当然,和其他任何技术一样,它也不是十全十美的,如:它对类和一些属性、参数的命名显得有些随意,给使用带来一些不便;还有如Action类execute方法的只能接收一个ActionForm参数等。但瑕不掩瑜,这些没有影响它被广泛使用。 三、Struts的安装与基本配置 我们主要针对Struts1.1版本进行讲解,这里假定读者已经配置好java运行环境和相应的Web容器,本文例子所使用的是j2sdk和Tomcat4.1.27。下面,将采用类似于step by step的方式介绍其基础部分。 安装Struts 到http://jakarta.apache.org/ 下载Struts的安装文件,本文例子使用的是1.1版。 接下来您要进行如下几个步骤来完成安装: 1、解压下载的安装文件到您的本地硬盘 2、生成一个新的Web应用,假设我们生成的应用程序的根目录在<catalina_home>/Webapps/mystruts目录。在server.xml文件中为该应用新建一个别名如/mystruts<br>3、从第1步解压的文件中拷贝下列jar文件到<catalina_home>/Webapps/mystruts/WEB-INF/lib目录,主要文件有如下一些。 <br><br><ccid_nobr></ccid_nobr></catalina_home></catalina_home>
4、创建一个web.xml文件,这是一个基于servlet的Web应用程序都需要的部署描述文件,一个Struts Web应用,在本质上也是一个基于servlet的Web应用,它也不能例外。 Struts有两个组件要在该文件中进行配置,它们是:ActionServlet和标签库。下面是一个配置清单: <ccid_nobr></ccid_nobr>
上面我们在web.xml中完成了对servlet和标签库的基本配置,而更多的框架组件要在struts-config.xml中进行配置: 5、创建一个基本的struts-config.xml文件,并把它放在<catalina_home>/Webapps/mystruts/WEB-INF/目录中,该文件是基于Struts应用程序的配置描述文件,它将MVC结构中的各组件结合在一起,开发的过程中会不断对它进行充实和更改。在Struts1.0时,一个应用只能有一个这样的文件,给分工开发带来了一些不便,在Struts1.1时,可以有多个这样的文件,将上述缺点克服了。需在该文件中配置的组件有:data-sources <br><br><ccid_nobr></ccid_nobr></catalina_home>
配置清单如下: <ccid_nobr></ccid_nobr>
到此为止,我们已经具备了完成一个最简单Struts应用的所需的各种组件。前面已经提到,在开发过程中我们会不断充实和修改上面两个配置描述文件。下面我们将实际做一个非常简单的应用程序来体验一下Struts应用开发的真实过程,以期对其有一个真实的认识。在完成基础部分的介绍后,笔者会给出一些在实际开发中经常用到而又让初学者感到有些难度的实例。最后,会介绍Struts与其他框架的关系及结合它们生成应用程序的例子。 |
Struts原理与实践(一)
最新推荐文章于 2018-05-30 21:57:45 发布