看一个例子:
@Pattern(regexp="[0-9]*")
@Size(max =5)
@Documented
@Target({ANNOTATION_TYPE, METHOD, FIELD, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = {}) //do not want any programmatic validation
public @interface CustomAnnotation {
String message() default "";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
}
带注释字段的示例:
@CustomAnnotation(message = "some important message")
private String field;
当字段违反@Pattern时,我从@Pattern而不是@CustomAnnotation收到错误消息。这是只显示@CustomAnnotation消息的方式吗?
最佳答案
您需要将元注释@ReportAsSingleViolation
添加到CustomConstraint
的定义中。这样,任何违反其组成约束之一的行为都将被报告为违反组成约束的单一行为。另请参见BV参考中的Constraint Composition部分。
关于java - 如何在组合的JSR-303注释中设置消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18356454/