Я начинаю с проверки бина, и я пытаюсь создать ограничение. Мое ограничение заключается в проверке CPF (личный документ в Бразилии). Мое ограничение работает, но мне нужно, чтобы сообщение содержало динамический параметр.Сообщение о проверке бина с динамическим параметром
Я использую ValidationMessages.properties. Мой код:
@Constraint(validatedBy=CpfValidator.class)
@Size(min=11, max=14)
@Documented
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Cpf {
String message() default "{cpf.validation.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
Моих ValidationMessages.properties:
cpf.validation.message=Cpf {cpf} é inválido
Моего Validator: я использую context.buildConstraintViolationWithTemplate для customiza моего сообщения.
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
String cpf = value;
boolean result = ValidationUtil.validaCpf(cpf);
if (result) {
return true;
}
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate("pf.validation.message}")
.addConstraintViolation();
return false;
}
Как передать утвержденное значение (cpf) параметром при создании сообщения?
Спасибо за помощь Гуннар, но я не могу использовать аннотации, которые не являются спецификациями JPA. –