通向架构师的道路 第二十二天 万能框架spring(四) 使用struts2 上2013-02-19 csdn lifetragedy一、前言SSH有了,现在我们要把我们的struts层从原来的1.3替换成struts2.x,引入了struts2.0后我们会发觉我们的代码和框架的变化还是不小的二、Struts2的好处1)在struts2的方法里,一切变量是线程安全的,而原有的struts1不是的;2)在struts2中如果你声明了如下这样的代码:
privater StringstudentName=””;
public voidsetStudentName(String studentName){
this.studentName = studentName;
}
public StringgetStudentName(){
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() {
returnstudentNo;
}
public voidsetStudentNo(String studentNo) {
this.studentNo= studentNo;
}
public String getStudentName(){
returnstudentName;
}
public voidsetStudentName(String studentName) {
this.studentName= studentName;
}
于是我在前台jsp里可以直接这样使用我的<input>标签和我这个VO中的某个字段进行绑定: <s:textfieldname="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进行整合并且能够开发我们的应用。