Каким образом ошибки нарушения ограничений валидации бина обнаруживаются / показываются JSF? - PullRequest
3 голосов
/ 17 сентября 2011

Когда я пытаюсь отправить форму JSF, ссылающуюся на сущность с аннотациями проверки bean-компонентов на ее свойствах, JSF отображает ошибки проверки bean-компонента при нарушении ограничений проверки bean-компонента.

Интересно:

  • Когда проверяется сущность?
  • Как это обрабатывать / связывать ошибки проверки бина с представлением?

Ответы [ 2 ]

4 голосов
/ 17 сентября 2011

Когда проверяется сущность?

На этапе проверки JSF, который является 3-й фазой жизненного цикла JSF, между сбором и применением представленных значений(2-й этап) и обновление значений модели (4-й этап) в.


Как это обрабатывает / связывает ошибки проверки бина с представлением?

Любое сообщение об исключении валидатора (и преобразователя) преобразуется / сохраняется в FacesMessage, которое добавляется к FacesContext с помощью FacesContext#addMessage().Все эти сообщения, в свою очередь, по отдельности отображаются либо в компоненте <h:message>, который привязан к определенному компоненту ввода

<input id="foo" value="#{bean.foo}" />
<h:message for="foo" />

<input id="bar" value="#{bean.bar}" />
<h:message for="bar" />

, либо в общем компоненте <h:messages/>

<h:messages />

Все пропущенные сообщения проверки будут записаны на стандартный вывод, или когда вы работаете на этапе разработки проекта, в предупреждениях этапа разработки, которые автоматически добавляются в представление.

1 голос
/ 17 сентября 2011

Проверка происходит после отправки значений запроса на сервер, но до их применения к компоненту модели.Это обеспечивает целостность модели.Во время этого процесса происходит преобразование типов данных, и если стандартных валидаторов и преобразователей JSF недостаточно для проверки вашего типа данных, вы можете добавить свои собственные.В этом руководстве описаны стандартные валидаторы и конвертеры , доступные в JSF.

Для написания пользовательских валидаторов см. Книгу О'Рейли о JSF .

...