使用基于XML配置方式实现输入校验时,Action需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。如果Action类为org.struts2.action.UserAction,则该文件应命名为:UserAction-validation.xml。校验文件的模板如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator>
</field>
</validators>
在validators下可以出现两个元素:validator field;若是field则表示字段优先,将使用字段校验器配置风格;若为validator则使用非字段校验器配置风格.
<filed>指定action中要校验的属性,<field-validator>指定校验器,上面指定的校验器requiredstring是由系统提供 的,系统提供了能满足大部分验证需求的校验器,这些校验器的定义可以在xwork-2.x.jar的com.opensymphony.xwork2.validator.validators下的default.xml中找到。
<message>为校验失败后的提示信息,如果需要国际化,可以为message指定key属性,key的值为资源文件中的key,在这个校验文件中,对action中字符串类型的username属性进行验证,首先要求调用 trim()方法去掉空格,然后判断用户名是否为空。
在做完以上处理后,还得在相应界面加上:<s:fielderror name="xx" cssStyle="color.red" />,这样,便会输出红色错误提示信息。