2013-04-11 2 views
0

Я хочу использовать JSR 303 (Hibernate Validator) в моем проекте JSF 2. Однако у меня сложные формы, и проверка на уровне поля недостаточна. Мне нужно использовать многие аннотации @ScriptAssert на уровне класса моей модели и ее дочерних бобов.JSF 2 и ручная проверка с помощью JSR 303 - как отслеживать поля?

Так что я хочу проверить модели моделей вручную (например, в методе обработки бобов). Но я не мог понять, как я могу сохранить, какое сообщение проверки должно отображаться в каком поле (поскольку оно работает автоматически, когда проверка на уровне поля включена и обрабатывается JSF).

Также мне нужно указать некоторые аннотации на уровне класса, чтобы их сообщения отображались в определенных полях. Я не вижу прямого способа справиться с этим ...

Не могли бы вы предоставить ссылку на объяснения этих вопросов (или сказать мне, что я делаю что-то не так?). Я думаю, что я не вхожу в Google, потому что интернет раздувается с ключевыми словами JSF и проверяет, извините.

ответ

0

Самый идиоматический способ сделать это - создать пользовательский валидатор проверки Bean для вашего класса.

Вам необходимо создать аннотацию проверки, которую вы бы поставили на уровне класса (не на уровне поля) и связали с классом проверки класса.

См, например:

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