创建验证器包装器标签
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 "";
}
我创建了包装@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 "";
}