Очень удобно использовать проверку бина, например javax.validation.constraints.Size
, в моем коде Java, например:
@Size(min=1,max=30)protected String custName;
, а не эквивалентный словар, встроенный в страницу .xhtml, например:
<f:validateLength minimum="1" maximum="30" />
Проблема, с которой я столкнулся, заключается в том, что я не могу заставить имя поля появляться в сообщении об ошибке.Я могу настроить сообщение, добавив следующую запись в ValidationMessages.properties в корне моего исходного каталога:
javax.validation.constraints.Size.message={0} value is too long.
Но вместо {0} не подставляется никакое значение.В результате, хотя аннотированные валидаторы прекрасно работают для простых страниц, где я могу включить отдельный <p:message />
для каждого поля формы, они не так хорошо работают для более сложной (например, с вкладками) формы, где мне нужно сгруппировать свои сообщенияв верхней части страницы.Есть ли обходной путь для этого, или мой единственный разумный выбор - использовать валидаторы JSF?