1、写一个校验类
命名规范为校验名+Validator,该类必须继承FieldValidatorSupport,覆盖validate方法
package cn.jieou.struts.validate;
import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;
public class AgeValidator extends FieldValidatorSupport{
/**
* object指的是action对象
*/
@Override
public void validate(Object object) throws ValidationException {
String fieldName = this.getFieldName();
Object fieldValue = this.getFieldValue(fieldName, object);
if (fieldValue instanceof Integer) {
Integer age = (Integer) fieldValue;
//校验如果年龄小于0的话返回错误信息
if (age < 0) {
this.addFieldError(fieldName, object);
}
}
}
}
2、创建validators.xml配置文件,把上面的校验类交给struts2管理
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator Definition 1.0//EN"
"http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd">
<validators>
<validator name="age" class="cn.jieou.struts.validate.AgeValidator"></validator>
</validators>
3、在指定的校验配置文件中添加校验配置
Validatection-validation.xml这里我用上一篇写好的校验配置文件
<!-- 年龄校验 -->
<field name="age">
<field-validator type="age">
<message><![CDATA[年龄必能小于0]]></message>
</field-validator>
</field>