Некоторые подсказки: Поймите жизненный цикл запроса JSF и где Ваши различные части кода помещаются в него. Особенно узнайте, почему Ваши образцовые значения не будут обновлены, если будут ошибки проверки.
Выберите библиотеку тегов и затем придерживайтесь ее. Не торопитесь для определения потребностей и прототипа различные библиотеки. Смешивание другого taglibs может нанести серьезный ущерб Вашему психическому здоровью.
Рассмотрите использование facelets-, он значительно упрощает худшие части разработки JSF. Я делаю основанный на CMS проект JSF теперь без facelets (после выполнения проекта с ним), и такое чувство, что моя левая рука отсутствует....
Я еще не знаю о "Лучшей практике" для перекрестного поля / проверка уровня формы.
Таким образом, проверка JSF в настоящее время ориентируется на единственную полевую проверку. IMO это становится ужасным при рассмотрении сложного перекрестного поля / проверка уровня формы.
Старый, но все еще выглядит точным мне http://weblogs.java.net/blog/johnreynolds/archive/2004/07/improve_jsf_by_1.html
http://www.jroller.com/robwilliams/entry/jsf_multi_field_validation_not
Я использовал реализацию IBM JSf и имею некоторые комментарии. Это не плохой способ пойти, но необходимо согласиться на IBM 'образ жизни'. Они записали свой собственный lib тега, который расширяет стандарт JSF. Если можно удаться остаться в Рациональном разработчике приложений (RAD) (который не становится обновленным, ЧТО часто), интеграция иногда является багги, но в целом достойный. Также интеграция с WebSphere довольно хороша. Если Ваш работодатель не играет в гольф с IBM, я думаю, что лучше остаться максимально ванильным.
Я настоятельно рекомендовал бы заставить кого-то испытанного в JSF вести Ваш первый проект в JSF, даже если это означает платить подрядчику в течение 3 месяцев. Подход JSF очень отличается от JSP. Путем Вы приближаетесь и решаете проблемы, очень отличается.
Рассмотрите следующие библиотеки:
Охватите MVC, необходимо не только знать то, что это означает, но используйте его экстенсивно.
Существует два основных шаблона для соединения контроллеров с представлениями
Каждая высокоуровневая страница имеет ограниченный по объему контроллер запроса (боб), вся проверка и действия страницы используют этот класс. Также используемый для фильтрации и упорядочивания Модели. Модель будет сохранена на нескольких контроллерах сеансового уровня, которые обработают говорящий с бэкендом (EJBs или слой персистентности), эти контроллеры сессий должны реализовывать бизнес-логику и не знать о JSF, HTML или любой технологии презентации.
Контроллеры дизайна на основе Вашей модели данных, вложите их с друг в друге. (Это сообщение становится слишком длинным так я, привычка входит в основные детали их).
Все:
По крайней мере Один человек: