Как изменить местоположение ValidationMessages.properties в Bean Validation

По умолчанию ValidationMessages.properties может находиться в корневом каталоге моего пути к классам. Могу ли я изменить расположение этого файла, например com.myapp.Anything.properties?


person Otávio Garcia    schedule 09.06.2011    source источник
comment
Вы можете использовать LocalValidatorFactoryBean.setValidationMessageSource(). Взгляните на этот вопрос. Или, если вы не хотите использовать Spring, вы можете использовать ту же технику (посмотрите исходный код LocalValidatorFactoryBean)   -  person Lu55    schedule 23.09.2015


Ответы (1)


Из спецификации JSR-303:

4.3.1.1. Алгоритм интерполяции сообщений по умолчанию Интерполятор сообщений по умолчанию использует следующие шаги:

  1. Параметры сообщения извлекаются из строки сообщения и используются в качестве ключей для поиска ResourceBundle с именем ValidationMessages (часто материализуется как файл свойств /ValidationMessages.properties и его варианты локали) с использованием определенной локали (см. ниже). Если свойство найдено, параметр сообщения заменяется значением свойства в строке сообщения. Шаг 1 применяется рекурсивно до тех пор, пока замена не будет выполнена (т. е. значение параметра сообщения может само по себе содержать параметр сообщения).

Кажется, что это значение по умолчанию и предложение. Чтобы поддержать это, JSR-303 TCK использует TestNG для перемещения их в каталог «WEB-INF/classes/», который совпадает с «./» в пути к классам ресурсов.

(Вы можете поэкспериментировать с этим, но это все, что я могу понять.)

Извини.

person Chris Ruffalo    schedule 08.12.2011