Макушинский, Алексей Анатольевич
- 1 year ago
- 0
- 0
Facelets — открытый веб-фреймворк , распространяемый под лицензией Apache license . Технология управления представлением для JavaServer Faces (JSF), альтернатива технологии JavaServer Pages ( JSP ). Фреймворк требует для функционирования валидные XML документы. Это означает, что веб-страницы должны быть созданы с использованием языка разметки XHTML . Facelets поддерживает все компоненты JSF и создаёт собственное дерево компонент, отражая view (см. MVC ) для JSF-приложения. В Facelets полностью устранена широко известная проблема смешанного контента, присущая JavaServer Pages .
Данный пример иллюстрирует использование XHTML шаблона для задания алиасов компонент. Атрибут
jsfc
используется для указания JSF-компонента, на который будет заменён соответствующий тег при компиляции. Аналогичный подход используется в
Tapestry
с использованием атрибута
jwcid
. Facelets гораздо проще
и поддерживает шаблонизацию страниц так же хорошо как и композицию. Версия
JavaServer Faces
2.0 подверглась большому влиянию со стороны Facelets, ожидается что Facelets станет частью стандарта JSR 314
.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
<body>
<form jsfc="h:form">
<span jsfc="h:outputText" value="Willkommen #{loggedInUser.name}"
disabled="#{empty loggedInUser}" />
<input type="text" jsfc="h:inputText" value="#{bean.property}" />
<input type="submit" jsfc="h:commandButton" value="OK" action="#{bean.doSomething}" />
</form>
</body>
</html>
Приведённый выше код может быть просмотрен в браузере и отредактирован с помощью WYSIWYG инструментов. Это невозможно для стандартных страниц JSF 1.2. Соответствующий код JSF страницы приведён ниже для сравнения.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
<body>
<h:form>
<h:outputText value="Willkommen #{loggedInUser.name}" disabled="#{empty loggedInUser}" />
<h:inputText value="#{bean.property}" />
<h:commandButton value="OK" action="#{bean.doSomething}" />
</h:form>
</body>
</html>