JavaServer Faces (JSF) — это фреймворк для веб-приложений, написанный на Java. Он служит для того, чтобы облегчать разработку пользовательских интерфейсов для Java EE приложений. В отличие от прочих MVC фреймворков, которые управляются запросами, подход JSF основывается на использовании компонентов. Состояние компонентов пользовательского интерфейса сохраняется, когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется. Для отображения данных обычно используется JSP.
Технология JavaServer Faces включает:
§ Набор API для представления компонент пользовательского интерфейса (UI) и управления их состоянием, обработкой событий и валидацией вводимой информации.
§ Специальная библиотека JSP тегов для выражения интерфейса JSF на JSP странице.
Процесс создания приложения:
1)Объявление описание сервлета Faces в дескрипторе Web-приложения (файле web.xml)
2)Описание местонахождения файла faces-config.xml внутри web.xml
3)Создание класса
4)Объявление класса в файле faces-config.xml в качестве объекта JavaBean
5)Создание страницы index.jsp
6)Создание страниц .jsp
Жизненный цикл обработки запроса в приложениях JSF состоит из следующих фаз:
1)Восстановление представления (запрос поступает на вход сервлета FacesServlet. Последний анализирует данные запроса и извлекает идентификатор представления, определяемый именем страницы JSP)
2)Использование параметров запроса; обработка событий (получение данных о состоянии каждого компонента)
3)Проверка данных; обработка событий (Конвертация и валидация данных, как правило, выполняются в фазе проверки данных)
4)Обновление данных модели; обработка событий (обновление данных модели путем изменения свойств серверных объектов JavaBean)
5)Вызов приложения; обработка событий (вызывает приложение для обработки данных, полученных через форму)
6)Вывод результата (вывод представления вместе со всеми его компонентами и их текущими состояниями)
JSF теги.
f:param – создает параметр компонентов.
f:actionListener – добавляет слушателя действий для компонентов.
f:attribute – добавить атрибут компонента.
f:converter – добавляет произвольный преобразователь компонент.
f:valiolator – добавляет проверки для компонента.
HTML теги.
h:form – html формы.
h:inputText – однострочный контроль ввода тега.
h:commandLink – ссылка которая работает как кнопка.