创建验证器包装器标签

Create Validator wrapper tag

我创建了包装@Pattern 的自定义验证器标签。

这里,

@Pattern(regexp = "~")
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {})
public @interface CustomConstraint {

    String message() default "";
    Class[] groups() default {};
    Class[] payload() default {};
}

但是,这个标签存在无法设置"message"属性的问题。 如何设置 "message" 的属性?

你要找的是@OverridesAttribute:

@Pattern(regexp = "~")
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {})
public @interface CustomConstraint {

    String message() default "";
    Class[] groups() default {};
    Class[] payload() default {};

    @OverridesAttribute(constraint = Pattern.class, name = "message")
    String patternMessage() default "";
}