Технология Java Standard Tag Library

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

Однако затем компания предложила спецификацию библиотеки стандартных тэгов на языке Java – Java Standard Tag Library (JSTL). В нее были включены стандарты для тэгов выполнения итераций, условной обработки, доступа к БД и много других тэгов, позволяющих выполнять форматирование. JSTL вначале была создана в качестве не обязательного дополнения к JSP, но позже она и связанные с ней языки выражений были включены в спецификацию JSP 2.0.

Тэги JSTL разделены на несколько категорий:

  • • базовые тэги, предоставляющие стандартную функциональность, обычную для шаблонного подхода: включение, выполнение итераций, проверку условий и т. п.;
  • • XML-тэги, предоставляющие аналогичную функциональность в XML-контексте, а также возможность обхода элементов XML- документа с использованием выражений XPath;
  • • SQL-тэги, предоставляющие средства для описания источников данных, предоставления запросов и выполнения итераций по полученным результатам выборки из БД;
  • • форматирующие тэги, включающие функции интернационализации и локализации, а также средства для форматирования дат и чисел.

На рис. 3.10 показано использование JSTL-тэгов для выполнения запроса к БД и представление полученных результатов в виде HTML- таблицы. JSTL-тэг <c:forEach> используется для выполнения цикла по строкам (rows), полученным из БД, и выполнения их отображения в HTML-таблице (HTML-тэги <tr>) с индивидуальными значениями колонок, представленных с помощью JSP Expression Language в виде ячеек HTML-таблицы (HTML-гэги <td>).

SQL-тэги в начале шаблона (<sql:setDataSource> и <sql:query>) устанавливают соединение с БД, возвращают результаты и назначают их переменным. Базовый тэг <c:forEach> выполняет цикл по результатам выполнения запроса к БД, показывает каждую полученную строку (запись) в виде строки HTML-таблицы (<tr>), в которой каждая ячейка (<td>) содержит значение для каждой колонки результата (можно отметить сходство с примером для технологии Cold Fusion на рис. 3.6).

JSP-страница, использующая технологию JSTL, и получаемый результат

Рис. 3.10. JSP-страница, использующая технологию JSTL, и получаемый результат

Подстановка параметров выполняется с помощью языка выражений (expression language, EL), связанного с JSTL, предоставляющего доступ к переменным, определенным в разных областях: на странице (раде), в запросе, сеансе работы пользователя (session) или всего приложения в целом (application). Обращение к переменным выполняется следующим образом: ${scopeName.variableName}, где scopeName – область определения переменной (страница, сеанс или приложение). Такое обращение к переменным далее расширяется путем использования сложных объектов Java, включая массивы, коллекции и отображения (maps) (например, ${session.myObject.myMemberVariable}).

JSTL сделали возможным составление JSP-страниц без включения в нее кода на языке Java. Тем самым данная технология предоставила полезные возможности для реализации компонен та View в JSP Model 2, в особенности в такой объектной MVC-среде, как Struts. Хотя JSTL имеет все возможности для создания полноценных web-приложсний, в основном она используется в качестве технологии разработки представлений (Views) в контексте объектных MVC-сред.

 
< Пред   СОДЕРЖАНИЕ     След >