wordpress cms布局,最新seo黑帽技术工具软件,wordpress新用户站点,网站信息架构1、为什么要自定义#xff1f; 通过上篇学习#xff0c;了解到很多常用注解了#xff0c;但是呢#xff0c;总是有那么些需求....2、案例分析(手机号格式) 2.1、需要验证的实体 Bean public class LoginVo {NotNullIsMobile //自定义的注解private String mobile;NotNullLe… 1、为什么要自定义 通过上篇学习了解到很多常用注解了但是呢总是有那么些需求.... 2、案例分析(手机号格式) 2.1、需要验证的实体 Bean public class LoginVo {NotNullIsMobile //自定义的注解private String mobile;NotNullLength(min32)private String password;//省略 get set 方法
} 2.2、自定义 IsMobile 注解类 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
Retention(RUNTIME)
Documented
Constraint(validatedBy {IsMobileValidator.class })
public interface IsMobile {//允许为空的属性boolean required() default true;//如果校验不通过返回的提示信息String message() default 手机号码格式错误;Class?[] groups() default { };Class? extends Payload[] payload() default { };
} 2.3、校验器
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import org.apache.commons.lang3.StringUtils;
import com.imooc.miaosha.util.ValidatorUtil;//IsMobile自定义的注解
//String注解参数类型
public class IsMobileValidator implements ConstraintValidatorIsMobile, String {//默认值_false用于接收注解上自定义的 requiredprivate boolean required false;//1、初始化方法通过该方法我们可以拿到我们的注解public void initialize(IsMobile constraintAnnotation) {//constraintAnnotation.required() 接收我们自定义的属性是否为空required constraintAnnotation.required();}//2、逻辑处理public boolean isValid(String value, ConstraintValidatorContext context) {//2.1、如果允许为空的话直接返回结果if(required) {return ValidatorUtil.isMobile(value);}else {//2.2、不允许为空//2.2.1、验证是否为空if(StringUtils.isEmpty(value)) {return true;}else {return ValidatorUtil.isMobile(value);}}}} 3、总结
自定义注解需要去手动实现两个文件自定义注解类 注解校验器类自定义注解类message() groups() payload() 必须注解校验器类继承 ConstraintValidator 类注解类注解参数类型 两个方法initialize初始化操作、isValid逻辑处理