相关疑难解决方法(0)

JSR303复合注释

我创建了一个由@Digits和@Min组成的复合注释

@Digits(integer=12, fraction=0)
@Min(value=0)
@ReportAsSingleViolation
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target( { FIELD, METHOD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Constraint(validatedBy={})
public @interface PositiveInt {
     String message() default "{positive.int.msg}";
     Class<?>[] groups() default {};
     Class<? extends Payload>[] payload() default {};
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我想重用这个注释,我希望在使用PositiveInteger时指定@Digits'整数'值

public Demo{
    @PositiveInteger(integer=1)
    private Integer num1;

    @PositiveInteger(integer=2)
    private Integer num2;
}
Run Code Online (Sandbox Code Playgroud)

其中num1可以是1-9,num2可以是1-99.

这是否可能,如果是这样,我该如何解决这个问题?

目前,我必须提供一个自定义的ConstraintValidator,我将获得@Digits和@Min的验证码

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target( { FIELD, ANNOTATION_TYPE, PARAMETER })
@Constraint(validatedBy=PositiveIntConstraintValidator.class)
public @interface PositiveInt {
         String message() default "positive.int.msg";
     Class<?>[] groups() default {};
     Class<? extends Payload>[] payload() default {};

     int integer() …
Run Code Online (Sandbox Code Playgroud)

java bean-validation

4
推荐指数
1
解决办法
4118
查看次数

标签 统计

bean-validation ×1

java ×1