Вопросы о проверке бина против проверки JSF?
У меня есть несколько вопросов о проверке бина и проверке JSF, в настоящее время я использую проверку бина:
- При проверке JSF проверка работает только на стороне клиента, на сервер не отправляется запрос, а проверка Bean работает на сервере?
- Если javascript отключен, оба будут работать JSF & Bean Validation или только bean validation?
- Каковы недостатки проверки Бина, если таковые имеются?
1 ответ
Это неправда. Проверки применяются в течение жизненного цикла JSF
Process Validations
,"Преобразование и проверка происходит, когда среда выполнения JSF вызывает метод processValidators() для каждого компонента в иерархии представления. Метод processValidators() сначала инициирует любое преобразование данных, которое требуется, прежде чем проверять значение компонентов в соответствии с правилами проверки приложения. В случае каких-либо ошибок в процессе преобразования или проверки компонент помечается как недействительный, а сообщение об ошибке генерируется и помещается в очередь в объекте FacesContext.Если компонент помечен как недопустимый, JSF переходит непосредственно к фазе ответа рендеринга, которая отображает текущее представление с сообщения об ошибках проверки в очереди. Если ошибок проверки нет, JSF переходит к этапу обновления значений модели ". - http://johnderinger.wordpress.com/2008/01/05/jsf-life-cycle/
Вы также можете найти эту информацию в спецификации.
Оба работают без
javascript
,Это больше вопрос стиля программирования. Я думаю, что валидация лучше выполняется в модели, чем в представлении, потому что она удаляет логику из представления и делает ее более СУХОЙ (не повторяйте себя). Если вы используете бин несколько раз, вам придется написать валидацию только один раз с бином. Вы также должны знать, что ограничения JBF перезаписывают валидацию бина.
Более подробную информацию о том, как использовать проверку бинов, вы можете найти здесь и спецификации здесь. Для получения дополнительной информации об интегрированной проверке JSF, вы должны посетить этот сайт.