风中叶之struts2学习笔记二

来源:互联网 发布:等厚干涉实验数据 编辑:程序博客网 时间:2024/04/27 23:40

Struts2

1,        Action中自定义方法的输入校验,对于通过actionmethod属性所指定的自定义方法,其对应的自定义输入校验方法名是validateMyExecute(假设自定义方法名是myExecute底层是通过反射实现的。

2,         当在Action中指定了自定义的execute方法时,首先会执行自定义的execute方法对应的输入校验方法,然后再去执行validate方法,执行完毕后如果出现了任何错误都不会再去执行自定义的execute方法,流程转到input这个名字对应的页面上。

3,         自定义Field级别的错误提示消息

1)   新建一个以Action命名的properties文件,如RegisterAction.properties

2)   在该属性文件中指定每一个出错字段的错误消息
invalid.fieldvalue.birthday=birthday invalid

3)   将.properties文件切换到Properties视图中,可以编辑成中文信息,myeclipse会将中文信息转换成unicode编码的形式

也可以使用jdk提供的工具在命令行中输入中文,将转换的unicode编码复制到代码或者.properties中,就不会出现中文乱码问题了。

4,        Struts2的校验框架(有效的xml文件),跟action在同一个包下面,命名规则如RegisterAction-validation.xml,具体来说分为字段优先校验器与校验器优先校验器。

5,它的dtd文件,我们可以在xwork-core-2.3.4.jar/xwork-validator-1.0.2.dtd中看到它的整个定义。

<!-- 这个dtd文件到struts-2.3.4\apps某个应用下去拷贝就行了 -->

<!DOCTYPEvalidatorsPUBLIC

        "-//Apache Struts//XWork Validator 1.0.2//EN"       "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

6,        校验类型可取的值:

xwork-core-2.3.4.jar/com.opensymphony.xwork2.validator.validators/default.xml中定义了校验类型以及对应的校验类。

7,        额外信息(param可取的值),到对应的类中找属性,注意要与set方法保持一致的。

 

校验框架的message信息会放到fielderror中

8,        message的可选属性key是用在国际化中的。国际化属性文件放在与action在同一包下,package_en_US.properties(英文),package_zh_CN.properties(中文)。

9,        对于国际化资源文件,其命名规则是package_语言名_国家名,比如package_en_US,package_zh_CN。国际化实现类1

10,  资源处理类ResourceBundle,专门处理语言包中的相关内容。

1)  资源文件,这里是普通的java应用,在src下建立资源文件,xxx_en_US.properties,xxx_zh_CN.properties

2)  文件内容例如:

3)  文件内容的读取

11,资源文件的内容里面,可以给等号后面的值增加参数,获得它的时候,可以动态赋值,参数是以花括号的形式{0},从0开始的

占位符的处理—消息格式化,动态控制是很有用的

11,  校验器优先的校验,以校验器为基准,为它应用字段

12,  中文的日期表示格式: 2012-7-22;英文的日期表示格式:7/22/2012

13,  Struts2校验框架执行的顺序:先执行校验框架(xml);再执行自定义的校验方法(validateMyExecute)方法;再执行validate方法;当然在它们三个之前进行的是类型转换。

14,  校验框架的xml写起来有时也挺麻烦的,不够灵活,更加推荐的是validate方法中的代码进行校验。Validate方法一般进行的是没有业务逻辑的验证。

15,  异常处理

1)  自定义异常

2)  抛自定义异常

3)  异常的处理

异常处理的时候,先找局部,局部没有的话,才找全局的

局部

 

全局

16,我们既可以在Action中定义异常与结果,也可以定义全局的异常与结果,局部总是优先于全局,如果定义成全局,那么可以为所有Action所共用,而局部异常与结果只能被当前Action所独享,不能为其它Action所共享。

 

原创粉丝点击