JavaServer Faces
JavaServer Faces (JSF) е Java технология за създаване на уеб-базирани приложения на основата на Java Servlet API и JSP. JSF е стандартизирана технология и е включена официално в Java Enterprise Edition 5. JSF включва:
- Компоненти - JSF е компонентно базирана технология. Компонентите служат за визуализиране на потребителския интерфейс. Всяка компонента запазва собственото си състояние, като състоянието може да се пази на сървъра или при клиента (клиентски браузър под вид на скрито поле в което състоянието е сериализирано и записано чрез Base64 кодиране)
- Валидиране и конвертиране на входните данни от компонентите
- Поддръжка на интернационализиране
- Навигация между страниците
- Генерира събития на сървъра в зависимост от действия от страна на клиента
- Стандартен набор от компоненти
- Възможност за създаване на потребителски библиотеки с JSP тагове
- Менаджирани бийнове (Managed Beans) - Представляват Java класове които са дефинирани в конфигурационен файл и JSF се грижи те да бъдат създадени при извикването им, или връщане ако вече са били създадени.
- Език за връзване на Java класове с компонентите (Expression Language)
- Генератор на изходен код (Renderer) - всяка JSF компонента съдържа свой собствен Renderer който се грижи за генериране на изходния код (HTML).
Конфигуриране на JSF приложение
JSF е имплементиран като Servlet и за да работи правилно е необходимо Faces Sevlet да бъде описан в конфигурационния файл на приложениет (web.xml).
<servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping>
Главният файл за декларации е /WEB-INF/faces-config.xml, но могат и да се декларират множество конфигурационни файлове, което позволява лесно разделяне на приложението на модули. Декларирането на конфигурационни става с помощта на следният код в web.xml:
<context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config-admin.xml,/WEB-INF/faces-config-user.xml</param-value> </context-param>
Главният конфигурационен файл faces-config.xml не е необходимо да се включва към списъка.
JSF компоненти
Основната идея на технологията е да се имплементират компоненти които създават потребителският йнтерфейс. Компонентите са преизползваеми, което означава че веднъж написани те могат да се използват на различни места без да бъде повтарян или пренаписван техният код.