Это очень удобно использовать проверку боба как javax.validation.constraints.Size
в моем Java кода, такие как:Включить имя поля в сообщениях об ошибках, генерируемых аннотированных валидаторов в JSF
@Size(min=1,max=30)protected String custName;
, а не wordier эквивалент встроенной в .xhtml странице , такие как:
<f:validateLength minimum="1" maximum="30" />
проблема у меня в том, что я не в состоянии получить имя поля, чтобы появиться в сообщении об ошибке. Я могу настроить сообщение, добавив следующую запись в ValidationMessages.properties в корне моего исходного каталога:
javax.validation.constraints.Size.message={0} value is too long.
Но значение не получает заменить на {0}. Результатом является то, что в то время как аннотированные валидаторы отлично работают для простых страниц, где я могу включать отдельный <p:message />
для каждого поля формы, они не работают так хорошо для более сложной (например, с вкладкой) формы, где мне нужно сгруппировать мои сообщения на вверху страницы. Есть ли какое-либо обходное решение для этого, или мой единственный разумный выбор использовать валидаторы JSF?
Я задаю атрибут метки - до сих пор не получает имя поля. (Я использую PrimTaces 3.0.1 inputText, а не h: inputText, но, похоже, это не имеет значения). –
См. Обновленный ответ. – BalusC
Звучит неплохо, и я даже нашел пару других ссылок на одно и то же решение (http://stackoverflow.com/questions/6803536/jsf-2-0-bean-validation-and-labels и https: // forum. hibernate.org/viewtopic.php?f=9&t=1009538), но для меня не было радости. –