javax.validator无法识别违规行为?

时间:2015-03-17 17:11:20

标签: java validation annotations constraints

这是我自己的约束

@Digits(fraction = 0, integer = 5, message = "ID should be up to {integer} digits")
@Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {})
@Documented
public @interface ValidId {
    String message() default "Invalid ID";

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

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

实施:

    @Override
    public void deleteClient(@ValidId Long id) throws ValidationException {
        Set<ConstraintViolation<Long>> violations = this.validator.validate(id); 
        ValidationHandler.handleViolations(violations);
    }

所以我传递的是无效值,如4565465165,验证完成后,我发现了cero违规行为。事实是,如果我在没有注释的情况下直接使用javax.validation.constraints.Digits进行验证,那么它既不起作用,也不会起作用:

@Override
public void deleteClient(@Digits(fraction = 0, integer = 5) Long id) throws ValidationException {
    Set<ConstraintViolation<Long>> violations = this.validator.validate(id); 
    ValidationHandler.handleViolations(violations);
}

然后我再也没有违规。你知道我做错了吗?

0 个答案:

没有答案