我正在构建我自己的@annotation
,它可以对类的许多字段进行操作(因此它是类级注释而不是字段级注释)。
当出现错误时,我添加ConstraintViolation
并打印从.properties文件中获取的错误消息。错误是这样的:
字段 {1} 必须小于字段 {2}
我需要的是填充变量 {1} 和 {2} 的方法。我必须在方法isValid()
中进行,因为在那里,我在语法中定义了在错误消息中显示的值,而不是 {1} 和 {2 }
这是我的注释:
@EsempioAnnotationClassLevel(dateFromNomeCampo={"dataDiNascitaFrom","dataLavoroFrom",...})
这是我的界面:
@Constraint(validatedBy = EsempioAnnotationClassLevelValidator.class)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface EsempioAnnotationClassLevel {
String[] dateFromNomeCampo();
String message() default "Errore FatherSearchInterface;
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
这是我的类,它实现了ConstraintValidator
:
public class EsempioAnnotationClassLevelValidator implements ConstraintValidator<EsempioAnnotationClassLevel, Object>{
...
public boolean isValid(Object object, ConstraintValidatorContext cxt) {
...
cxt.buildConstraintViolationWithTemplate("errorMessage").addNode("field").addConstraintViolation();
...
}
...
}