一、媒介
SSH有了,此刻我们要把我们的struts层从本来的1.3替换成struts2.x,引入了struts2.0后我们会觉察我们的代码和框架的变革照旧不小的
二、Struts2的长处
1)在struts2的要领里,一切变量是线程安详的,而原有的struts1不是的;
2)在struts2中假如你声明白如下这样的代码:
privater String studentName=””; public void setStudentName(String studentName){ this.studentName = studentName; } public String getStudentName(){ return this.studentName; }
那么当你对这个studentName举办符值后,不需要再把它用request.setAttribute这样的形式把值带到页面中去了,相当于你可以省去在request中往返的setAttribute{…}getAttribute{…}的操纵(有时由于健忘把一个listset 到request中去,常常导致一个页面就是不显示列表,对吧?这样的事可以被极洪流平上制止掉)。
3)更富厚且描写简朴的页面标签,可以直接支持将一个Object和页面的<input>举办绑定,如:
我在靠山假如有一个StudentVO,这个StudentVO如下描写:
private String studentNo = ""; private String studentName = ""; public String getStudentNo() { return studentNo; } public void setStudentNo(String studentNo) { this.studentNo = studentNo; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; }
于是我在前台jsp里可以直接这样利用我的<input>标签和我这个VO中的某个字段举办绑定:
<s:textfield name="studentVO.studentName" size="24" maxlength="25"/>
4)原有在struts1中的formbean彻底消失,去而代之的是利用VO工具,一个strutsaction就是一个普通的类,只是它extendsActionSupport而己。
5)精采的注入机制,连session,request, response都可以注入了,因此你的一个action要领就是一个普通类要领,这样做的长处是极大化将servlet与我们的action举办解耦合。试想假如是原有的struts1的action要领,我此刻要改成swing的actionPerform,你是不是要把原有的action要领包罗传参都要举办重构啊?而此刻有了struts2,由于连session,request, response都是被注入的,因此这个struts2的action要领可以直接重用。
Strtus2尚有许多长处,这边纷歧一罗列了,在struts2的官方文档和stepby step等书中具体有说,我们这边主要以实战为主,报告struts2怎么和spring举办整合而且可以或许开拓我们的应用。
三、整合spring和struts2
我们照旧用我们的Maven2。
Struts2变革很大,它是一个险些被重写的框架,而不是一个“加强”的框架,它是担任自xwrok的框架而且在整个框架中全面利用了filter机制。
对付我们的maven的pom.xml文件来说,这个lib库的窜改照旧很大的。
甚至还会呈现一些莫名奇妙的错误而其原因是因为lib库的版本差池可能是有斗嘴,为此笔者整理了一份ssp的所有需要的jar的mavenpom.xml文件。
固然,我会在后头把这个xml文件完整列出来但照旧但愿各人在一开始随着我可以或许一步步走,对pom.xml文件和工程举办排错,这样你将对一些常用的框架的lib库有个较量熟悉的进程。
3.1 延用原有的myssh工程中的pom.xml文件
我们新建一个maven的web工程-myssp,并将原有的myssh工程中的pom.xml文件拷入工程中。
请确保你利用的jdk版本为version1.6.x。
3.2 去除所有的struts1.3的依赖干系
打开这个pom.xml文件,把下面这段所有的关于struts1.3的依赖包全部去除。
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-core</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-el</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-extras</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-faces</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-mailreader-dao</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-scripting</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-taglib</artifactId> <version>1.3.10</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts-tiles</artifactId> <version>1.3.10</version> </dependency>
3.3 增加struts2的依赖包