struts2 总结.docx

上传人:b****5 文档编号:7272064 上传时间:2023-01-22 格式:DOCX 页数:28 大小:38.44KB
下载 相关 举报
struts2 总结.docx_第1页
第1页 / 共28页
struts2 总结.docx_第2页
第2页 / 共28页
struts2 总结.docx_第3页
第3页 / 共28页
struts2 总结.docx_第4页
第4页 / 共28页
struts2 总结.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

struts2 总结.docx

《struts2 总结.docx》由会员分享,可在线阅读,更多相关《struts2 总结.docx(28页珍藏版)》请在冰豆网上搜索。

struts2 总结.docx

struts2总结

第一章struts2入门与配置

1、在tomcat中的配置server.xml:

加入

作用:

这样配置就不用将工程发布tomcat中了,只要发布到tomcat中,没有此配置也是可以的

在Tomcat里可以配置一下路径,不用把它发布到Tomcat里。

在Tomcat的根目录下找到server.xml里的标签里加上一个标签。

基中path请求的虚拟路径、docBase当前的应用程序目录、reloadable当为true时表示当开发者去修改任意一个class文件或配置文件时Tomcat自动重起方便开发,当运行的时候为false提高Tomcat运行的效率。

然后配置好Tomcat,其中Launch选择runmodel运行模式。

2、加入五个必须的struts2的jar包

基本jar包commons-logging-1.0.4.jar:

日志包、freemarker-2.3.13.jar、ognl-2.6.11.jar、struts2-core-2.1.6.jar:

核心包、xwork-2.1.2.jar:

webWork的核心包,struts2也依赖于它、commons-fileupload-1.2.1.jar

3、修改工程下的web.xml文件:

xmlversion="1.0"encoding="UTF-8"?

>

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

struts2

org.apache.struts2.dispatcher.FilterDispatcher

struts2

/*

struts2不是servlet而是一个过滤器

4、在src目录下创建struts2的配置文件struts.xml,内容:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEstrutsPUBLIC

"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"

"http:

//struts.apache.org/dtds/struts-2.0.dtd">

/result.jsp

注:

package里的extends与类的继承相似,struts-default是struts2里已经存在的包action里的name与页面里表单里的action的值,这个值除掉.action;class与struts1里的type属性一样。

result转到的页面,里面的name默认值为sucess;如果name为input表示出现错误时返回到输入页面。

action类会自动力执行execute的方法

拦截器是struts2的核心部分

代码执行流程:

表单提交数据->struts.xml->标签指定的逻辑处理类->跳转到指定的页面

5、struts2里action不须要继承那个类开实现它是一个简单的pojo,不须要依赖struts2的任何一个类文件。

6、struts2里替除了一些不须要的标签,标签文件的描述符是核心包里面的META-INF里。

struts2是用maven来构建,它比ant还要强大。

struts2的form标签action值默认以action结尾,它还集成了错误验证的机制。

7、struts2提交一个父类:

ActionSupport。

webwork本身是xwork与webwork两个工程的合并,struts2引入了xwork。

ActionSupport对通用的行为进行了实现,实际是对一些接口的实现。

也可以自己写。

8、ActionSupport:

如果子类想实现验证要实现ActionSupport的validate方法。

当验证失败时用ActionSupport的addFieldError(StringfieldName,StringerrorMessage)方法添加错误信息。

fieldName表单里控件的名字,errorMessage错误信息,出现错误时返回到input页面。

第二章struts2类型转换

一、struts2类型转换一

1、struts2的类型转换是基于ognl的类型转换。

主要实现TypeConverter这个类,它对于类型转换的实现,它描述了一种最通用的情况,所以一般不去实现这个接口,它提供了一个接口实现的类DefaultTypeConverter。

自己的类继承DefaultTypeConverter重写convertValue方法来完成类型转换。

2、convertValue(Mapcontext,Objectvalue,ClasstoType)web应用程序分为两种情况,一:

客户端字符串到自定义类型的转换;二:

在页面进行输出时,是从服务器到客户端的转换,即是从自定义类型到字符串的转换。

toType是目标类型即如果是String则是第二种情况否则是第一种情况。

3、ActionSupport类实现了接口Action。

Action定义了struts2的一个基本模型,里面有ERROR:

有错误、INPUT:

验证没有成功、LOGIN:

没有成功,因为用户没有登录、NONE:

表示action操作成功但是不显示任何视图、SUCCESS:

成功,它们都对应struts.xml里里的name属性的值最好显示写出;最好用Action里的字符串来返回。

4、写一个属性文件来设定struts2的转换工作。

这个属性文件一定要与action在同一个包内。

这个属性文件名是:

”action类名-conversion.properties”。

5、在属性文件里是以key与value的性质,key是struts2要转换的属性名,value是转换这个属性的类。

当用户要转换多个属性里可以换行加多个。

二、struts2类型转换二

1、当需要转换多个自定义类型的类的化需要全局类型转换。

局部类型转换是对某一个特定的类进行转换,而全局的是在当前系统里所有符全要求的进行类型转换。

全局类型转换需要在classes目录下建立一个名为xwork-conversion.properties的属性文件(名字不可以更改),在里面写配置信息。

形式是:

要转换类的名=作为转换器的类。

2、在属性文件里注释一行用的是“#”号。

3、不管是全局的类型转换还是局部的类型转换都是用一个类extendsDefaultTypeConverter类里的convertValue方法来转换的。

而DefaultTypeConverter则是实现了TypeConverter接口来实现类型转换的。

4、struts2类型转换是基于ognl的。

struts2提供了一个更加简化的类型转化方式,它本身也是基于ognl实现的。

就是类型转换类继承org.apache.struts2.util包里的StrutsTypeConverter类。

它是继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter类。

StrutsTypeConverter是一个抽象类,在它里是面有convertToString(Mapcontext,Objecto)与convertFromString(Mapcontext,String[]values,ClasstoClass)两个抽象方法,分别是从字符串开始转换与转换到字符串。

它是struts2类型转换的核心,真正项目是继承StrutsTypeConverter的,而不是继承DefaultTypeConverter。

5、StrutsTypeConverter继承DefaultTypeConverter后要去重写convertValue方法,里面toClass与String.class进行比较,如果为真则调用convertToString方法否则调用convertFromString方法。

6、如果用户实现完继承StrutsTypeConverter的类后,只需要添加到属性文件即可。

7、在struts2中页面也可以把控件的名字写为:

类对象名.属性名,这个方式这个类必须提供一个没有参数的构造方法。

这种写法对表单会很麻烦,绝对不能有它。

8、在页面显示一个类的时候,它会默认调用这个类的toString()方法。

第三章struts2校验

1、类型转换就是客户端用户输入的参数转化为服务器端java的对象,不管用户输入什么样的内容,到客户端都是以字符串的形式存在。

2、int与Date的转换是struts2的内置拦截器自动转换的。

3、输入校验是验证用户输入的信息是否合法是否有效。

4、输入校验是建立在类型转换的基础之上的误显示的功能,。

5、struts2的标签库已经内置了错但是必须使用struts2的标签

fielderror>

fielderror>才能显示错误信息。

6、ActionSupport在com.opensymphony.work2下。

ActionSupport实现的Action,而Action里面的常量代表的是与它相对应的小写字符串。

7、如果返回页面没有input页面的话当类型转换或校验出错的时候会出现404Noresultdefinedforactionaction类andresultinput错误。

8、struts2一但发现类型转换或输入校验失败它会去寻找一个名字叫做input的页面,然后转到这个页面。

9、验证方法validate是ActionSupport实现接口Validateable里的方法。

在ActionSupport里这个方法没有实现任何东西,是让子类重写此方法来实现自己想要的验证。

10、为了防止用户直接从浏览器的地址栏里输入action地址,action里的属性就为null,所以要进行非空验证。

11、Calendarc1=Calendar.getInstance();

c1.setTime(birthday);

Calendarc2=Calendar.getInstance();

c2.setTime(graduation);

让时间与Calendar关联起来。

c1.before(c2)时间c1是否在c2之间。

12、在HTML表单里可以用EL方式得到错误信息时返回用户原来的信息。

13、在struts.xml里有一个转发的方式一般情况下是dispatcher,也是默认方式,它有很多种。

14、如果用

fielderror>来显示错误信息,它会以

  • 的方式来显示错误的信息。

    15、遇到类型转换错误的时候(也就是说不能进行类型转换),struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面。

    16、当年龄不可以转换的时候,struts2有内置的错误显示:

    "Invalidfieldvalueforfield'age'",age对应表单里的数据,这种错误信息一定要被替换掉。

    17、struts2提供一个资源文件来解决这个问题,用于类型转换的错误信息,这个文件是用于类型转换的。

    18、全局:

    struts.xml里加上一个constant标签,它不在package里。

    它表示在struts整个框架里要使用那些常量就把它写进去。

    要替换struts2自带的错误信息应加上它就把struts里源有的资源文件替换成为message的资源文件,不需要加properties,message.properties文件放在src目录下,即放在classes目录下。

    19、在建立的属性文件里定下xwork.default.invalid.fieldvalue={0}error它前面不变的,xwork.default.invalid.fieldvalue当任何的一个属性转换出问题的时候就会显示后面的信息,后面表示的是“属性名error”显示在页面上。

    20、类型转换也有全局和局部的,上面的是全局的。

    局部的是验证某一个action里的局性。

    如果要验证某一个action里的属性,在action的包下建一个“Action类名.properties”属性文件,内容格式:

    invalid.fieldvalue.属性名=要现实的信息。

    显示信息若是中文时不能直接在文件中写中文,否则会出错,应该将中文转换为encoder的编码方式,可以用jdk中bin目录下的native2ascii.exe工具进行转换。

    21、当局部与全局转换同在的时候局部会替换掉全局的错误信息。

    22、struts2里的表单默认提交方式为post,它默认的有自动显示错误信息功能,也可以保存用户原来输入的数据。

    23、当时间转换失败时给时间属性添加一个null值,所以就不需要添加null值判断。

    int类型的属性如果转换不成功将默认是0;

    24、类型转换与输入校验的流程

    1.首先Struts2对客户端传来的数据进行类型转换

    2.类型转换完毕后再进行输入校验

    3.如果类型转换和输入校验都没有错误发生,那么进入execute方法(调用商业逻辑)

    注意:

    如果类型转换不成功,也同样要进行输入校验

    25、实际应用中从不用struts内置的错误信息。

    26、addFieldError用于存放类型转换的错误信息或验证的错误信息。

    addFieldError是ActionSupport实现ValidationAware里的方法,还有一种addActionError方法,实现上action有两种错误级别一种是field级别的错误信息显示的时候用struts的form表单或

    fielderror>标签,别一种是action级别的错误信息显示的时候只可以用

    actionerror/>标签显示。

    27、addFieldError是把错误信息存放在Map里面,addActionError是把信息存放到Collection里面去。

    28、struts的form标签只可以显示field级别的信息,它不可以显示action级别的信息。

    29、有时会同时出现field与action级别的错误信息,如类型转换写验证同时出问题,解决这一个问题把每一个struts标签里加上一个theme="simple"表示不让struts对标签进行封装,它也不生成多于的代码,也就没有struts给的错误提示。

    theme=”simple”如果在

    form>标签中,则会使struts的标签格式取出,自己生成的表格页消除,便于自定义格式。

    30、struts生成的控件id是:

    form的action值_控件名。

    31、struts2里没有像struts1里的dispatchaction类,它是在struts.xml里的action里加一个method属性,它的值就是对应的逻辑方法名,如果有多个业务逻辑方法,就把这个类写成多个标签。

    当method出现时就不走execute方法。

    如:

    class="com.test.action.RegisterAction"method="abc">

    32、应该是一个业务逻辑方法对应一个验证方法,它是用validate+业务逻辑方法,方法名的第一个字母大写。

    其中在action类中不管有多少个验证方法都会执行validate方法。

    如:

    public void validateAbc()。

    33、当多个验证方法时validate是验证所有。

    而validateExecute方法是专用于来验证execute方法的。

    34、校验也可以用xml来校验,xml是通用的,建议在一般情况下用xml验证,只有当业务校验非常非常复杂时才用validate来校验。

    35、xml校验方法:

    在action包下建xml文件,程序运行时会自动寻找此xml校验文件,命名规则为“Action类名-validation.xml”,xml的格式如下:

    xmlversion="1.0"encoding="UTF-8"?

    >

    DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN""

    true

    usernameshouldnotbeblank!

    6

    10

    usernameshouldbebetween${minLength}and${maxLength}

    passwordshouldnotbeblank!

    6

    10

    passwordshouldbebetween${minLength}and${maxLength}

    repasswordshouldnotbeblank!

    6

    10

    repasswordshouldbebetween${minLength}and${maxLength}

    ageshouldnotbeblank!

    1

    150

    ageshouldbebetween${min}and${max}

    birthdayshouldnotbeblank!

    2001-01-01

    2003-12-31

    birthdayshouldbebetween${min}and${max}

    graduationshouldnotbeblank!

    2005-01-01

    2007-12-31

    graduationshouldbebetween${min}and${max}

    36、struts2也

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1