38
СОВРЕМЕННЫЕ ТЕНДЕНЦИИ В JAVA- ТЕХНОЛОГИЯХ: JBOSS RICHFACES FRAMEWORK Avlochinskaya Tatyana Software Engineer Exadel Inc. [email protected]

RichFaces: обзор

Embed Size (px)

DESCRIPTION

Basic review of RichFaces JSF framework for Java-based apps.

Citation preview

Page 1: RichFaces: обзор

СОВРЕМЕННЫЕ ТЕНДЕНЦИИ В JAVA-ТЕХНОЛОГИЯХ:

JBOSS RICHFACES FRAMEWORKAvlochinskaya Tatyana

Software Engineer

Exadel Inc.

[email protected]

Page 2: RichFaces: обзор

ВСТУПЛЕНИЕ RichFaces – фреймворк для создания графических

интерфейсов Проблема красивых интерфейсов: красиво, быстро

работает, недорого – выберите любые 2. Jboss (Red Hat) – спонсор, компания Exadel –

разработчик Open Source проект, лицензия LGPL

Page 3: RichFaces: обзор

СОДЕРЖАНИЕ Обзор технологий Ajax, JSF Ajax + JSF = A4J RichFaces Примеры Создание JSF-компонента Сравнение RichFaces с аналогами Полезные ресурсы

Page 4: RichFaces: обзор

ОБЗОР ТЕХНОЛОГИЙ

• Ajax • Java Server Faces

Page 5: RichFaces: обзор

AJAX Подход к построению интерактивных интерфейсов

веб-приложений Асинхронный режим выполнения запросов к серверу

и обновления данных на странице Преимущества: Экономия трафика Уменьшение нагрузки на сервер Ускорение работы интерфейса

Page 6: RichFaces: обзор

AJAX: МОДЕЛЬ

Page 7: RichFaces: обзор

AJAX: МОДЕЛЬ

Page 8: RichFaces: обзор

JAVA SERVER FACES Технология построения J2EE веб-приложений Спецификация в составе J2EE Построение интерфейса из компонент Компоненты:

сохраняют состояние имеют стандартизованный жизненный цикл свойства подставляются из Backing Bean

Page 9: RichFaces: обзор

JAVA SERVER FACES: КОМПОНЕНТЫ

Список компонентов и примеры использования:http://www.exadel.com/tutorial/jsf/jsftags-guide.html

JSF:

Rendered Component:

HTML:

Page 10: RichFaces: обзор

JAVA SERVER FACES: ДЕРЕВО КОМПОНЕНТ

Page 11: RichFaces: обзор

JAVA SERVER FACES: ЖИЗНЕННЫЙ ЦИКЛ JSF ЗАПРОСА

1. Поиск или создание компонентного дерева представления.

2. Обновление и установка значений компонент, с применением соответствующих конвертеров.

3. Проверка корректности значений. Генерация сообщений об ошибках.

4. Обновление модели, связанной с компонентами.

5. Вызов зарегистрированных обработчиков событий и выбор представления для отображения.

6. Создание и отображение нового представления.

Page 12: RichFaces: обзор

AJAX + JSF = A4J

Page 13: RichFaces: обзор

A4J: AJAX SUPPORT КОМПОНЕНТ

Добавление Ajax функциональности к стандартным компонентам.

Выполнение запроса по любым клиентским событиям, определенным на компоненте

Page 14: RichFaces: обзор

A4J: ТОЧКИ ВНЕДРЕНИЯ AJAX В JSF Restore View

Восстановление представления. На этом этапе разработанный фильтр, уменьшает дерево представления до ограниченного разработчиком.

Invoke ApplicationПосле выполнения бизнес-логики разработчика в объекте Ajax Context сохраняется список зон, подлежащих обновлению.

Render ResponseВосстановление частей дерева для передачи на клиент.

Page 15: RichFaces: обзор

A4J: ВОЗМОЖНОСТИ КОМПОНЕНТ AJAX ACTION

Оптимизация генерации и обработки запросов◦ eventQueue◦ requestDelay◦ timeout◦ ignoreDupResponses

Ограничение серверной обработки запроса◦ ajaxSingle◦ bypassUpdates

Обновление после запроса◦ reRender◦ limitToList

Page 16: RichFaces: обзор

A4J: ПРЕИМУЩЕСТВА Использование Ajax в JSF приложении без

необходимости применения Java Script конечным разработчиком

Внесение Ajax функциональности в приложение без необходимости изменения начального кода страниц

Прохождение Ajax запросов в рамках стандарта жизненного цикла JSF

Page 17: RichFaces: обзор

RICHFACES• Общие сведения• Визуальные компоненты

Page 18: RichFaces: обзор

RICHFACES: ОБЩИЕ СВЕДЕНИЯ

добавление Ajax функциональности в любое готовое JSF приложение

набор готовых компонентов с богатой функциональностью

Применение скинов для компонент Набор инструментов для разработки компонент

(Component Development Kit)

Ajax-фреймворк с библиотекой визуальных компонентов на основе JSF.

Возможности:

Page 19: RichFaces: обзор

RICHFACES: ОБЩИЕ СВЕДЕНИЯ: ПРЕИМУЩЕСТВА Разработка насыщенного веб-интерфейса с

приятным внешним видом …и Ajax функциональностью Кроссбраузерность Не нужна ручная верстка на HTML+CSS, свои скрипты

на Javascript Поддержка скриптовых библиотек: jQuery, Prototype,

script.aculo.us Безпроблемная интеграция с Spring, Jboss Seam

Page 20: RichFaces: обзор

RICHFACES: КОМПОНЕНТЫ Всего — более 60 компонентов. Префиксы a4j:, ajax: — невизуальные компоненты,

которые добавляют Ajax-функциональность в JSF Префиксы rich:, richfaces: — GUI-компоненты с

приятным внешним видом и skinnability.

Page 21: RichFaces: обзор

RICHFACES: КОМПОНЕНТЫ Интересные примеры:

ajaxForm queue ajaxValidator dataTable, dataGrid dragSupport, dropSupport contextMenu, dropDownMenu tree modalPanel, panelBar, progressBar, tabPanel, toolBar calendar, colorPicker, comboBox, editor, fileUpload,

inplaceInput listShuttle effect, hotKey, layoutPanel

Page 22: RichFaces: обзор

ПРИМЕРЫ• LiveDemo• PhotoAlbum

Page 23: RichFaces: обзор

ПРИМЕРЫ: LIVEDEMO http://livedemo.exadel.com/richfaces-demo/richfaces/welcome.jsf

Page 24: RichFaces: обзор

ПРИМЕРЫ: PHOTOALBUM http://livedemo.exadel.com/photoalbum/ http://download.jboss.com/jboss-richfaces/

photoalbum-ear-3.3.1.GA.ear

Page 25: RichFaces: обзор

СОЗДАНИЕ КОМПОНЕНТА

• JSF• C помощью Component

Development Kit

Page 26: RichFaces: обзор

СОЗДАНИЕ КОМПОНЕНТА: JSF Громоздкий занудный процесс: чтобы создать

примитивный компонент, нужно написать: UIComponent class, Renderer class, Tag class faces configuration file (faces-config.xml). *.taglib.xml (для facelets-среды).

Page 27: RichFaces: обзор

СОЗДАНИЕ КОМПОНЕНТА: JSF Чтобы создать полноценный компонент, который не

только рисуется, но и что-то делает, нужны: ListenerTagHandler class, Интерфейс listener’a, Методы в этом интерфейсе для обработки нужных

событий Классы событий Классы для различных

типов renderеров.

Page 28: RichFaces: обзор

СОЗДАНИЕ КОМПОНЕНТА: CDK Чтобы создать полноценный компонент нужны:

Maven mvn archetype:create -

DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-jsf-component -DarchetypeVersion=3.3.1.GA -DartifactId=inputDate

Page 29: RichFaces: обзор

СОЗДАНИЕ КОМПОНЕНТА: CDK Подробное руководство:

http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/cdkguide/en/pdf/CDK_Developer_Guide.pdf

Page 30: RichFaces: обзор

СРАВНЕНИЕ С АНАЛОГАМИ

• JSF- фреймворки• Не-JSF

Page 31: RichFaces: обзор

СРАВНЕНИЕ С АНАЛОГАМИ: JSF-ФРЕЙМВОРКИ ICEfaces — меньше компонентов, не все

поддерживают Ajax ZK — не самый приятный внешний вид

компонентов, не поддерживается skinning MyFaces/Tomahawk— мало компонентов,

плохая документация

Другие: Tobago, Woodstock, Trinidad, RCFaces, Netadvantage,WebGalileoFaces, QuipuKit

Page 32: RichFaces: обзор

СРАВНЕНИЕ С АНАЛОГАМИ: НЕ-JSF

Лицензия на использование Ext в коммерческих целях стоит от 200$

Огромный объем (порядка 500 кб) Обширная, но мало понятная документация Нужно разбираться с Javascript, отлаживать в случае

проблем — неудобно и сложно

Page 33: RichFaces: обзор

СРАВНЕНИЕ С АНАЛОГАМИ: НЕ-JSF GWT

Мало компонентов Не продумана система расширения

существующих компонентов — есть final компоненты

очень медленный цикл «change-deploy-test» Flex

Дополнительная сложность — интеграция Flex-интерфейса с Java-бэкэндом

Время на изучение новой технологии Среда для разработки (FlashBuilder) — платная

Page 34: RichFaces: обзор

ПОЛЕЗНЫЕ СВЕДЕНИЯ

• Совместимость• How Do I?• Ссылки

Page 35: RichFaces: обзор

ПОЛЕЗНЫЕ СВЕДЕНИЯ: СОВМЕСТИМОСТЬ Версии Java

JDK 1.5 и выше Имплементации JSF и

фреймворкиSun JSF-RI - 1.2_12MyFaces 1.2.5Facelets 1.1.1 - 1.2Seam 1.2. - 2.1.0

БраузерыInternet Explorer 6.0 - 8.0Firefox 2.0 - 3.0Opera 8.5 - 9.5Safari 3.0Google Chrome

Сервера иконтейнеры сервлетовApache Tomcat 5.5 - 6.0BEA WebLogic 9.1 - 10.0Resin 3.1Jetty 6.1.xSun Application Server 9 (J2EE 1.5)Glassfish (J2EE 5)JBoss 4.2.x - 5Websphere 7.0. и вышеGeronimo 2.0 и выше

Page 36: RichFaces: обзор

ПОЛЕЗНЫЕ СВЕДЕНИЯ: КАК БЫ МНЕ... ... подключить компоненты RichFaces к имеющемуся JSF-

приложению<dependency><groupId>org.richfaces.ui</groupId><artifactId>richfaces-ui</artifactId><version>3.3.1</version></dependency>

...подправить компоненты и собрать RF самостоятельно из исходников (с помощью Maven)

http://www.jboss.org/community/wiki/HowToBuildRichFacesSnapshotManually

...задать вопрос разработчикамhttp://www.jboss.org/index.html?module=bb&op=viewforum&f=261

...зарепортить багhttps://jira.jboss.org/jira/browse/RF

...написать свой компонент (CDK)http://www.jboss.org/community/wiki/CDKGettingStarted

Page 37: RichFaces: обзор

RichFaces on Jboss page: http://www.jboss.org/jbossrichfaces/

RichFaces документация, форум и wiki: http://www.jboss.org/jbossrichfaces/docs/index.html

RichFaces downloads (файлы для загрузки): http://www.jboss.org/jbossrichfaces/downloads/

ПОЛЕЗНЫЕ СВЕДЕНИЯ: ССЫЛКИ

Page 38: RichFaces: обзор

ВОПРОСЫ[email protected]