学了一阵子的struts2,感觉收获挺大的。对于校验这一块内容,只有更深入的了解,才能体会到它的灵活所在!
1、Action 中的自定义方法的输入校验。对于通过action的method属性所指定的自定义方法,其对应的自定义输入校验方法名为validateMyExecute(假设自定义的方法名为myExecute)。底层是通过反射来调用的。
2、当在Action中指定了自定义的execute方法时,首先会执行自定义的execute方法所对应的输入校验方法,然后再去执行validate方法,执行完毕后如果出现了任何错误都不会再去执行自定义的execute方法,流程转向了input这个名字所对应的页面上。
3、自定义Field级别的错误提示消息。
1)新建一个以Action名命名的properties文件,如RegisterAction.properties。
2)然后在该属性文件中指定每一个出错字段的错误消息,如:Invalid.fieldvalue.bithday= birthday invalid!!
4、Struts2的检验框架(有效的xml文件)。具体来说分为字段优先校验器与校验器优先校验器。
5、校验日期时,同时采用execute()与框架校验,若时间范围不在execute()定义的时间内,而在框架定义的范围内,调用的是execute的校验;若时间同时不在它们定义的范围内,则采用的是框架校验。
6、对于国际化的资源文件,其命名规则是:package_语言名_国家名,例如:
package_zh_CN,package_en_US
7、Structs2框架校验执行的先后顺序:
1)首先执行校验框架(xml文件)
2)执行自定义方法的校验方法(validateMyExecute)
3)执行validate方法
8、对于struts2.xml文件的结果配置来说,局部要优先于全局的。
9、我们既可以在Action中定义异常与结果,也可以定义全局的异常与结果,局部总是优先于全局的,如果定义成全局,那么可以为所有的Action所公用,而局部的异常与结果只能被当前的Action所独享,不能为其他的Action所共享。
来源:oschina
链接:https://my.oschina.net/u/247647/blog/50708