RichFaces
JBoss RichFaces | |
---|---|
![]() | |
![]() | |
Тип | |
Автор | JBoss |
Последняя версия | 4.5.17 Final[1] (22 июня 2016 года) |
Лицензия | GNU Lesser General Public License |
Сайт | jboss.org/richfaces/ |
RichFaces — библиотека компонентов для
В дополнение к большому количеству готовых к использованию визуальных компонентов фреймворка Ajax4jsf, RichFaces также реализует поддержку скинов («skinnability» feature), предоставляя большое количество предопределённых скинов для настройки внешнего вида приложения.
История RichFaces
Библиотека компонентов RichFaces была создана в рамках фреймворка Ajax4jsf, который был разработан Александром Смирновым.[2] Осенью 2005 года Смирнов присоединился к Exadel и продолжил разработку фреймворка. Первая версия Ajax4jsf вышла в релиз в мартe 2006 года. Позднее в том же году Exadel VCP разделил фреймворк Ajax4jsf на две части и RichFaces появился на свет. Ajax4jsf стал свободным проектом и хостился на Java.net, а RichFaces превратился к коммерческую библиотеку компонентов для JSF.
RichFaces предоставляет разработчику набор компонент, которые работают «из коробки» (то есть компонент делает всё что нужно), реализуя компонентно-ориентированный подход поддержки технологии Ajax, в то время как Ajax4jsf требует реализации поддержки Ajax на странице.
В
Версии RichFaces начиная с 4.0 обладают 100 % поддержкой JSF 2.0 и требуют использований facelets.
Фреймворк
Фреймворк реализован как библиотека компонентов, добавляющая поддержку технологии
RichFaces позволяет задать (с помощью тегов JSF) различные области страницы JSF, которые необходимо обновить с помощью Ajax запроса, и предоставляет несколько способов для отправки запроса на сервер. Также стоит отметить то, что страница ничем не отличается от «обычной» страницы JSF и нет никакой необходимости писать JavaScript код вручную.
Архитектура RichFaces
Архитектура RichFaces состоит из следующих частей: Ajax Filter, AJAX Action Components, AJAX Containers и JavaScript Engine.
- Ajax Filter — чтобы получить все преимущества использования RichFaces разработчику необходимо зарегистрировать фильтр в файле web.xml приложения. Фильтр распознаёт различные типы запросов. Начиная с версии 4.0 это не является обязательным.
- AJAX Action Components —
AjaxCommandButton
,AjaxCommandLink
,AjaxPoll
,AjaxSupport
и другие компоненты могут использоваться для отправки Ajax запросов с клиентской стороны. - AJAX Containers —
AjaxContainer
— это интерфейс, который описывает область на странице JSF, которая должна быть декодирована во время запроса Ajax.AjaxViewRoot
иAjaxRegion
представляют собой реализации этого интерфейса. - JavaScript Engine — RichFaces JavaScript-движок работает на стороне клиента. Он обновляет различные области на странице JSF на основе информации полученной из Ajax ответа. JavaScript-движок предоставляет API, поэтому разработчику не нужно создавать собственные функции JavaScript.
Поддержка скинов
Поддержка скинов является особенностью RichFaces, которая используются для определения общего стиля интерфейса. Данная функциональность основана на XCSS технологии, которая обеспечивает гибкость и динамику. RichFaces имеет в своём составе набор предустановленных скинов:
- DEFAULT
- plain
- emeraldTown
- blueSky
- wine
- japanCherry
- ruby
- classic
- deepMarine
- Laguna (появилось в RichFaces 3.2.1)
- GlassX (появилось в RichFaces 3.2.2)
- DarkX (появилось в RichFaces 3.2.2)
Атрибуты скина, такие как generalBackgroundColor
, generalLinkColor
, headerFamilyFont
и т. п. хранятся в файле skinname.skin.properties
. Каждый компонент имеет файл XCSS (специальный файловый формат который комбинирует гибкость XML и CSS), который предоставляет мэппинг CSS селекторов на свойства выбранного скина. Кроме того, имеется возможность задания атрибутов скина для стандартных элементов управления HTML. Имеется возможность создать свой собственный скин с использованием функции Plug-n-Skin feature, которая является архетипом Maven и представляет собой каркас нового скина.
Простой пример JSF страницы с использованием компонента RichFaces calendar
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<ui:composition template="/templates/component-sample.xhtml">
<a4j:outputPanel id="calendar" layout="block">
<rich:calendar value="#{calendarBean.selectedDate}"
locale="#{calendarBean.locale}"
popup="#{calendarBean.popup}"
datePattern="#{calendarBean.pattern}"
showApplyButton="#{calendarBean.showApply}"
cellWidth="24px" cellHeight="22px" style="width:200px"/>
</a4j:outputPanel>
</ui:composition>
</html>
Результат выполнения представленного выше кода выглядит следующим образом:
Примечания
- ↑ RichFaces 4.5.17.Final Release Announcement . Дата обращения: 19 июня 2018. Архивировано 20 июня 2018 года.
- ↑ Max Katz, Exadel. Ajax4jsf and RichFaces - historical perspective (15 августа 2008). Архивировано из оригинала 2 февраля 2009 года.
Ссылки
- RichFaces Product Page
- RichFaces Developer Guide
- RichFaces Components Showcases Demo Архивная копия от 26 июля 2012 на Wayback Machine
- PhotoAlbum Demo
- RichFaces in Production Архивная копия от 26 ноября 2009 на Wayback Machine
- Users' forum
- RichFaces/Ajax4jsf project discussion with Alexander Smirnov, JBoss Booth, JavaOne 2008 (ogg format) (недоступная ссылка)
- Список соответствия версий библиотеки RichFaces и поддерживаемых браузеров