自定义数据校验详解:

92 阅读1分钟

实体类参数校验:

image.png

实体类参数校验--->分组

image.png

image.png

image.png

自定义参数校验规则------>用户定义只能使用规定的参数

image.png

@Documented//元注解--->进入帮助文档
@Target({FIELD})//元注解---->作用在(属性,类,方法)上的作用范围
@Retention(RUNTIME)//元注解---->注解的生命周期,作用到那个阶段(编码,运行,源代码...)
@Constraint(validatedBy = {StateValidation.class})//---->提供校验规则的类
public @interface State {
//提供校验失败的提示信息
String message() default "state参数的值只能时已发布后者草稿!";
//指定分组
Class<?>[] groups() default {};
//负载  获取到State注解的附加信息
Class<? extends Payload>[] payload() default {};

}

image.png

public class StateValidation implements ConstraintValidator<State,String> {
@Override
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {

   //提供校验规则---->value要校验的数据

   if(value.equals(null)){
      return false;
   }
   if (value.equals("已发布") || value.equals("草稿")){
      return true;
   }
   return false;
}
}