action中:
abc() 的默认验证方法 (用java代码):
validateAbc();
execute() 的默认验证方法时 validate();
验证方法的执行顺序: 先验正自定义的验证方法:最后执行validate()方法,validate() 默认一定会执行!但是他是全局验证,要想不用?
不用validate()有两种方法:
- 不写validate();
- 将validate() 改为validateExecute();
abc() 在配置文件中校验配置:(用xml文件)
action名-abc-validation.xml(必须和action在同一目录下)
struts2两种输入校验方式:
xml文件和代码中的validate*();
struts2 :xml 输入校验:重用性好!支持正则表达式:推荐用xml;
非常复杂的验证还要用代码(validate() 校验)!
基于xml的校验:
针对Action写xml校验文件;一个Action对应一个xml校验配置文件:
xml校验文件格式: Action类名字-validation.xml
同时对一个Action 有validate 校验和xml校验执行顺序
输出结果:xml结果先输出;validate验证结果后输出;
- 真正存放field级别错误的信息对象是LinkedhashMap
- LinkedhashMap 的K和V :K是一个String V:是一个ArrayList
xml文件内容:
- DTD在struts2 sample例子中找;(访问xml 网上DTD时不适用IE)
- field: 字段校验 ,validate:非字段校验
- 一个field对应一个属性,name=“属性名” type=“校验方式(在xwork jar下com.opensymphony.xwork2.validator.validators.default.xml中找)”
- 注意xml校验的错误信息放在fieldError中,注意jsp页面中错误信息的现实级别的设定!用xml校验应使用fieldError级别!