По умолчанию ValidationMessages.properties может находиться в корневом каталоге моего пути к классам. Могу ли я изменить расположение этого файла, например com.myapp.Anything.properties?
Как изменить местоположение ValidationMessages.properties в Bean Validation
comment
Вы можете использовать LocalValidatorFactoryBean.setValidationMessageSource(). Взгляните на этот вопрос. Или, если вы не хотите использовать Spring, вы можете использовать ту же технику (посмотрите исходный код LocalValidatorFactoryBean)
- person Lu55   schedule 23.09.2015
Ответы (1)
Из спецификации JSR-303:
4.3.1.1. Алгоритм интерполяции сообщений по умолчанию Интерполятор сообщений по умолчанию использует следующие шаги:
- Параметры сообщения извлекаются из строки сообщения и используются в качестве ключей для поиска ResourceBundle с именем ValidationMessages (часто материализуется как файл свойств /ValidationMessages.properties и его варианты локали) с использованием определенной локали (см. ниже). Если свойство найдено, параметр сообщения заменяется значением свойства в строке сообщения. Шаг 1 применяется рекурсивно до тех пор, пока замена не будет выполнена (т. е. значение параметра сообщения может само по себе содержать параметр сообщения).
Кажется, что это значение по умолчанию и предложение. Чтобы поддержать это, JSR-303 TCK использует TestNG для перемещения их в каталог «WEB-INF/classes/», который совпадает с «./» в пути к классам ресурсов.
(Вы можете поэкспериментировать с этим, но это все, что я могу понять.)
Извини.
person
Chris Ruffalo
schedule
08.12.2011