自定义validate注解校验

  1. /**
     * @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这个指向的类必须是自己写的类,我没有指向,导致一直报错,没有验证的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值