среда, 5 октября 2011 г.

Constraints list in JSR-303

Некоторое время назад, я написал в своём твиттере, что в JSR-303 нельзя задать два @Pattern-а с различными сообщениями на один элемент. Я был не прав и в этом посте приведу пример того как это сделать.
 
Если посмотреть на список аннотаций в JSR-303 и Hibernate Validator, то мы увидим, что каждая из аннотаций имеет и вторую очень похожу форму с суффиксом List. Например, есть Pattern и Pattern.List, Size и Size.List. Благодаря им можно для одного элемента указать несколько одинаковых ограничений:

Не совсем относящееся к посту, но не менее важная часть это локализованные сообщения, которые извлекаются по соответствующему ключу из файла ValidationMessages.properties:

Обратите внимание, что: а) файл этот должен находиться в корне classpath-а б) Messages с буковкой s на конце, т.е. во множественном числе.

В ваше сообщение, вместо {min} и {max} подставятся соответствующие значения параметров из аннотации.

Комментариев нет:

Отправить комментарий