-
/** * @author yangyh * @since 2018/10/18 */ @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER}) @Retention(RUNTIME) @Documented @Constraint(validatedBy = ListStringLength.ListStringLengthValidator4List.class) public @interface ListStringLength { String message() default "{org.hibernate.validator.constraints.Length.message}"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; /** * @return size the element must be higher or equal to */ int min() default 0; /** * @return size the element must be lower or equal to */ int max() default Integer.MAX_VALUE; /** * Defines several {@link ListStringLength} annotations on the same element. * * @see ListStringLength */ @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER}) @Retention(RUNTIME) @Documented @interface List { ListStringLength[] value(); } class ListStringLengthValidator4List implements ConstraintValidator<ListStringLength, java.util.List<String>> { private int min; private int max; @Override public void initialize(ListStringLength constraintAnnotation) { min = constraintAnnotation.min(); max = constraintAnnotation.max(); } @Override public boolean isValid(java.util.List<String> value, ConstraintValidatorContext context) { if (null != value && value.size() > 0) { for (String s : value) { if (s.length() < min || s.length() > max) { return false; } } } return true; } } }
遇到的坑:@Constraint这个指向的类必须是自己写的类,我没有指向,导致一直报错,没有验证的类
自定义validate注解校验
最新推荐文章于 2024-08-14 23:15:50 发布