Как использовать заполнители с валидатором @Email hibernate - PullRequest
0 голосов
/ 29 января 2012

По умолчанию org.hibernate.validator.constraints.Email показывает not a well-formed email address, но я хочу показать foo is not a well-formed email address, если пользователь вводит только foo, где требуется хорошо отформатированный адрес электронной почты.Поэтому мне нужно иметь заполнитель для foo.Свойство в моем доменном объекте помечено @Email.

У меня есть Email = {0} is not a well-formed email address в моем файле пакета ресурсов, который показывает email is not a well-formed email address, когда пользователь вводит foo для поля электронной почты.

Можно ли сгенерировать это введенное значение и отобразить егодля сообщения об ошибке?

Я использую Hibernate 3.5 с Spring MVC 3.

Спасибо.

1 Ответ

1 голос
/ 29 января 2012

Если вы работаете с Hibernate Validator в качестве поставщика Bean Validation, вы можете использовать ValueFormatterMessageInterpolator, представленный в выпуске 4.2.Для этого просто установите этот интерполятор при получении вашего Validator, например, так:

Configuration<?> configuration = Validation.byDefaultProvider().configure();

Validator validator = configuration
    .messageInterpolator(new ValueFormatterMessageInterpolator(
        configuration.getDefaultMessageInterpolator()))
    .buildValidatorFactory()
    .getValidator();

Используя этот интерполятор, вы можете ссылаться на проверенное значение заполнителем {validatedValue} из сообщения об ошибке:1007 *.

Более подробную информацию вы можете найти в справочном руководстве HV .

...