JSR303参数校验

package cn.chen.miaosha.volidator;

import javax.validation.Constraint;

import javax.validation.Payload;

import java.lang.annotation.*;

@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Constraint(

        validatedBy = {IsMobileValidator.class}

)

public @interface IsMobile {

    boolean required() default true;

    String message() default "手机号码格式有误";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}

package cn.chen.miaosha.volidator;

import cn.chen.miaosha.util.ValidatorUtil;

import org.thymeleaf.util.StringUtils;

import javax.validation.ConstraintValidator;

import javax.validation.ConstraintValidatorContext;

public class IsMobileValidator implements ConstraintValidator<IsMobile,String>{

    private boolean required = false;

    @Override

    public void initialize(IsMobile isMobile) {

        required = isMobile.required();

    }

    @Override

    public boolean isValid(String value, ConstraintValidatorContext context) {

        if(required){

            return ValidatorUtil.isMobile(value);

        } else {

            if(StringUtils.isEmpty(value)){

                return true;

            }else{

                return ValidatorUtil.isMobile(value);

            }

        }

    }

}

猜你喜欢

转载自blog.csdn.net/chen45682kang/article/details/81104019