JSF 2.0 имеет проверку бина (JSR 303), а также собственную платформу проверки - PullRequest
1 голос
/ 14 ноября 2011

JSF 2.0 предлагает Bean Validation (JSR 303) и свой собственный Validation framework, учитывая выбор, я не понимаю, какой из них выбрать.

Кажется, что с помощью структуры проверки JSF я могу указать ограничения на уровне представления XHTML.т.е. максимальная длина.При использовании Bean Validation я бы указывал ограничения с помощью аннотаций (@) в bean-компоненте.

Я рассматриваю инфраструктуру JSF Validation как скорее подключаемую попытку, а JSR-проверку bean-компонента - элегантное решениеКто-нибудь может прокомментировать это?

Могу ли я проверить, использовал ли кто-то один поверх другого и почему, или кто-то использовал оба вместе?

Ответы [ 2 ]

3 голосов
/ 14 ноября 2011

Прежде всего, Bean Validation является , а не частью JSF. Это часть Java EE, в которую, в свою очередь, входит и JSF. Bean Validation также можно использовать в приложениях, отличных от JSF. Bean Validation просто разработана для обеспечения стандарта Java EE для сред валидации.

Основное функциональное различие между этими подходами валидации заключается в том, что собственная валидация JSF контролируется на уровне представления, а валидация бина контролируется на уровне модели. Кроме того, есть техническое отличие: проверка бинов не обязательно поддерживается во всех контейнерах. Простые сервлет-контейнеры, такие как Tomcat, например, не поддерживают его. Вам потребуется самостоятельно предоставить API-интерфейс Bean Validation / impl вместе с веб-приложением.

Если вы используете модели, над которыми у вас нет контроля, вам нужно будет принять решение обернуть их в другую модель, чтобы использовать Bean Validation или определить валидацию в представлениях JSF. Что выбрать, зависит от функциональных и технических требований. Оба работают одинаково хорошо.

Если вы используете модели, в которых у вас есть полный контроль, и они также повторно используются для других представлений, кроме JSF, а ограничения валидации полностью зависят от моделей данных базы данных, тогда Bean Validation является лучшим вариантом, чем собственная валидация JSF, поскольку она минимизирует повторение кода в проверочных ограничениях.

0 голосов
/ 03 апреля 2012

Bean Validation в модели имеет больше смысла, если вы хотите повысить расширяемость проекта, скажем, например, вы хотите показать некоторые из сервисов сущностей за пределами [например, для операции CRUD).

...