如何在jsr 303中向验证器添加其他属性?

时间:2012-02-29 12:59:31

标签: java bean-validation

在编写我的自定义注释和验证器时,我遇到了问题:

我的注释代码:

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NumericValidator.class)
public @interface Numeric {

    String message() default "{constraint.postcode}";

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

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

    int digitCount();
}

因此,您可以看到我需要添加参数“digitCount”。但是这个参数不是强制性的,所以我可以不使用验证,但根据这个注释我还是要指定它。我想为这个参数提供一些默认值,实际上我不知道如何做到这一点。

1 个答案:

答案 0 :(得分:0)

只需为默认值提供一个幻数,并忽略带有幻数的任何注释。我在这个例子中用-1作为幻数:

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NumericValidator.class)
public @interface Numeric {

    String message() default "{constraint.postcode}";

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

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

    int digitCount() default -1;
}