ОБЗОР И ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ FACELETS - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

ОБЗОР И ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ FACELETS

Горкун О.П. 1
1Балаковский инженерно-технологический институт – филиал федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский ядерный университет (МИФИ)»
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
ВВЕДЕНИЕ

Java – язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска -- 23 мая 1995 года. Сегодня технология Java предоставляет средства для превращения статических Web-страниц в интерактивные динамические документы и для создания распределенных не зависящих от платформы приложений.

JavaServer Faces (JSF) — это фреймворк для веб-приложений, написанный на Java. Он служит для того, чтобы облегчать разработку пользовательских интерфейсов для Java EE-приложений. В отличие от прочих MVC-фреймворков, которые управляются запросами, подход JSF основывается на использовании компонентов. Состояние компонентов пользовательского интерфейса сохраняется когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется. Для отображения данных обычно используется JSP, Facelets, но JSF можно приспособить и под другие технологии, например XUL [2].

Как правило, пользовательские интерфейсы в ходе разработки веб-приложений подвержены наиболее частым изменениям и во многих случаях состоят из кода, на разработку которого затрачиваются большие усилия, с трудом допускающего корректировку, поэтому процесс создания пользовательских интерфейсов становится дорогостоящим. В данном реферате показано, как можно реализовать гибкие пользовательские интерфейсы на основе платформы Facelets.

Facelets — открытый веб-фреймворк, распространяемый под лицензией Apache license. Технология управления представлением для JavaServer Faces (JSF). Фреймворк требует для функционирования валидные XML документы. Это означает, что веб-страницы должны быть созданы с использованием языка разметки XHTML. Facelets поддерживает все компоненты JSF и создаёт собственное дерево компонент, отражая view для JSF-приложения.

Технология Facelets была первоначально разработана как альтернатива обработчику представлений на основе JSP, применявшемуся в версиях JSF 1.x. В версии JSF 2.0 технология Facelets заменила JSP в качестве применявшейся по умолчанию в JSF технологии представления. В Facelets полностью устранена широко известная проблема смешанного контента, присущая JavaServer Pages. Платформа Facelets не только является лучшим обработчиком представлений, но и поддерживает целый ряд тегов, предназначенных для реализации шаблонов и других целей.

1. ТЕГИ FACELETS

Теги Facelets могут быть сгруппированы по нескольким категориям.

- Включение содержимого из других страниц XHTML ( ui: include).

- Формирование страниц из шаблонов ( ui:composition, ui:decorate, ui:insert, ui:define, ui:param).

- Создание пользовательских компонентов без написания кода Java ( u i:component,ui: fragment).

- Различные утилиты (ui: debug, ui : remove, ui: repeat).

Чтобы иметь возможность использовать теги Facelets, необходимо добавить следующее объявление пространства имен к конкретным страницам JSF: xnlns: ui=http://java, sun. com/jsf/facelets.

Таблица 1.

Теги Facelets

Тег

Описание

ui: include

Включает содержимое из другого файла XML

ui: composition

Будучи используемым без атрибута template, тег u i: composition определяет последовательность элементов, которая может быть вставлена в другом месте. Композиция может иметь переменные части (указанные с помощью дочерних тегов u i: insert). Если тег u i: composition используется с атрибутом template, загружается шаблон. Дочерние теги этого тега определяют переменные части шаблона.

ui:decorate

Будучи используемым без атрибута template, тег u i:decorate определяет страницу, в которую могут быть вставлены части. Переменные части задаются с помощью дочерних тегов u i: insert. Если тег u i: composition используется с атрибутом template, загружается шаблон. Дочерние теги этого тега определяют переменные части шаблона.

Продолжение таблицы 1

1

2

ui:param

Задает параметр, передаваемый во включенный файл или шаблон.

ui:define

Определяет содержимое, вставляемое в шаблон с помощью соответствующих тегов ui: insert.

ui:insert

Вставляет содержимое в шаблон. Это содержимое определяется в теге, который загружает шаблон.

ui:component

Идентичен ui: composition, за исключением того, что создает компонент, добавляемый к дереву компонентов

ui:fragment

Идентичен ui: decorate, кроме того, что создает компонент, добавляемый к дереву компонентов

ui:debug

Тег ui: debug позволяет пользователю вывести на экран окно отладки, в котором показаны иерархия компонентов для текущей страницы и переменные с областью действия приложения

ui:remove

Реализация JSF удаляет все, что находится в тегах u i: remove

ui:repeat

Выполняет итерации по списку, массиву, результирующему набору или отдельному объекту.

В дополнение к этому технология Facelets позволяет определять специализированные теги. Специализированный тег внешне напоминает обычный тег JSF, но в нем используется механизм композиции Facelets для вставки содержимого на конкретную страницу.

Чтобы можно было использовать такой тег, его необходимо объявить в файле библиотеки тегов.

Также при вызове шаблона можно передавать параметры двумя способами: с помощью тега ui: define и тега ui: param. Как уже было сказано, тег ui: define используется для предоставления разметки, вставляемой в шаблон. В отличие от этого тег ui:param задает переменную языка выражений для использования в шаблоне:

В соответствующем шаблоне можно обращаться к параметру с помощью выражения языка выражений, как в следующем примере:

Today's date: #{сurrentDate}"/>

Ter ui:param может также использоваться как дочерний по отношению к тегу ui:include.

2. ОРГАНИЗАЦИЯ КОНКРЕТНЫХ ПРЕДСТАВЛЕНИЙ

По существу, задание шаблона приводит к разбиению представления на две страницы XHTML: на ту, которая определяет общие функциональные средства (шаблон), и ту, с помощью которой задаются функции, различающиеся между представлениями (композиция).

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

Отдельные части содержимого включаются каждым представлением с помощью тега ui: include. Например, на странице входа включение заголовка происходит следующим образом:

Благодаря тому, что отдельные части содержимого определяются в своих собственных файлах, становится проще определять местонахождение кода при внесении изменений в то или иное представление. Например, если потребуется что-то изменить в боковом меню представления входа в систему, то будет известно, что для этого достаточно отредактировать файл sections/login/sidebarLeft. xhtml, не затрудняя себя поиском этого определения бокового меню в одном большом файле. Разбиение на разделы способствует упрощению чтения, понимания и внесения изменений на конкретные страницы, поскольку каждый файл содержит небольшой объем разметки.

3. ДЕКОРАТОРЫ

Если применяемый набор страниц является достаточно сложным, то подход на основе платформы Tiles предоставляет разработчику более широкие возможности. А что касается простого приложения, то трактовка каждой страницы как сборки разделов, по-видимому, является чрезмерно усложненной. В большей степени сосредоточенным на содержимом является подход на основе декораторов. При этом страницы разрабатываются как обычно, но содержимое заключается в теги ui : deco rate, которые имеют атрибут template. Подход на основе декораторов — это применяемый в технологии Facelets аналог платформы Sitemesh (http://www.opensymphony.com/siternesh/). При использовании платформы Sitemesh, как и в подходе на основе декораторов, вначале осуществляется проектирование содержимого, а затем его оформление [5].

В своей простейшей форме декоратор может использоваться примерно так:

 

Просмотров работы: 514