struts2添加自己的校验器

来源:互联网 发布:天池 大数据 编辑:程序博客网 时间:2024/05/18 01:24

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>