Validation API: русификация сообщений об ошибках
ПРОВЕРКА ДАННЫХ В SPRING + HIBERNATE
По умолчанию в Hibernate Validation API на английском языке прописаны тексты сообщений для всех стандартных проверок, например таких как @NotBlank и @NotNull. Но, конечно, нам необходимо русифицировать эти сообщения, чтобы в браузере они выводились на красивом языке, понятном пользователю.
Сделать это очень просто. Необходимо создать собственный файл под названием ValidationMessages.properties и положить его в classpath нашего проекта. В этом случае тексты сообщений будут сначала искаться в нашем файле, а уж потом в файле по умолчанию.
1. Создавайте файл в кодировке, которую вы используете на сайте. Обычно это UTF-8. И можно прописать туда сообщения об ошибках только для тех проверок, которые вы реально используете в проекте.
Например, мы используем две аннотации: @NotNull - чтобы проверить, что объект существует, и @NotBlank - проверяем строковые объекты на то, что они существуют и при этом не являются пустой строкой.
В нашем файле ValidationMessages.properties это будет выглядеть так:
javax.validation.constraints.NotNull.message=Поле обязательно для заполнения
org.hibernate.validator.constraints.NotBlank.message=Поле не должно быть пустым
org.hibernate.validator.constraints.Email.message=Неверный email адрес
Заметьте, что идентификатор записи состоит из полного наименования класса и суффикса "message".
2. Аналогичным образом в этот файл мы можем дописать и сообщения для собственных custom проверок. Например, в моей системе учета студентов необходимо, чтобы при оплате обучения было обязательно указано за что произошла оплата: за сессию, очередной курс обучения или же за дополнительный мастер-класс. Для этой проверки я ввожу новую аннотацию ru.premaservices.astroved.student.pojo.PaymentConstraint
. Соответственно, я должна прописать в файле ValidationMessages.properties строку:
ru.premaservices.astroved.student.pojo.PaymentConstraint.message=Нужно указать номер курса, или сессию, или мастер-класс
- Тэги: Validation API, проверка данных, русификация
Комментарии (0)