
- •Харьковский Национальный Университет Радиоэлектроники Кафедра Инфокоммуникационной инженерии
- •Содержание
- •JSTL
- •JSP Standard Tag Library
- •Язык выражений JSP 2.1 (Expression Language, EL)
- •Синтаксис выражений
- •Доступ к объектам бинов
- •Неявные (Implicit) объекты
- •Использование функций в EL
- •Определение функций
- •Вызов функции
- •JavaServer Pages Standard Tag Library (JSTL)
- •Подключение библиотек JSTL
- •Библиотека Core. Работа с переменными
- •Библиотека Core. Вывод данных
- •Библиотека Core. Условные теги
- •Библиотека Core. Условные теги
- •Библиотека Core. Итерационные теги
- •Пример использования forEach
- •Библиотека Core. Работа с ресурсами
- •Пример работы с ресурсами
Харьковский Национальный Университет Радиоэлектроники Кафедра Инфокоммуникационной инженерии
Технологии разработки web-приложений с использованием Java EE
(часть 3)
Доцент кафедри ИКИ Евдокименко Марина Александровна
2017

Содержание
1.JSTL Core.
2.JSP Standard Tag Library.
3.Синтаксис выражений JSTL.
4.JavaServer Pages Standard Tag Library (JSTL).
5.Пример работы с ресурсами.
JSTL
JSP Standard Tag Library
JSP-страницы, включающие скриптлеты, элементы action (стандартные действия) и пользовательские теги, не могут быть технологичными без использования JSTL (JSP Standard Tag Library).
Создание страниц с применением JSTL позволяет упростить разработку и отказаться от вживления Java-кода в JSP. Страницы со скриптлетами трудно читаемы, что вызывает проблемы как у программиста, так и у веб-дизайнера, не обладающего глубокими познаниями в Java.
JSTL предоставляет следующие возможности:
поддержку Expression Language, что позволяет разработчику писать простые выражения внутри атрибутов тега и предоставляет “прозрачный” доступ к переменным в различных областях видимости страницы;
организацию условных переходов и циклов, основанную на тегах, а не на скриптовом языке;
простое формирование доступа (URL) к различным ресурсам;
простую интернационализацию JSP;
взаимодействие с базами данных;
обработку XML, а также форматирование и разбор строк.
Библиотеку JSTL версии 1.1.2 (jstl-1.1.2.jar и standard-1.1.2.jar) или более позднюю версию можно загрузить c сайта apache.org. Библиотеки следует разместить в каталоге /lib проекта.
Язык выражений JSP 2.1 (Expression Language, EL)
базируется на языках ECMAScript и XPath
предоставляет унифицированный синтаксис для записи runtime-выражений, которые можно использовать в технологиях JavaServer Pages и JavaServer Faces
позволяет вставлять runtime выражения на уровне:статического текста JSP страницы (т.н. Template)значений атрибутов CustomTags
как правило, используется вместо скриптлетов на страницах, которые используют CustomTags
по своему назначению выражения во многом схожи с выражением < %= … %>, однако являются более удобным инструментом работы с данными
Выражения EL имеют вид:
${ expression }
где expression – текст выражения в соответствии с синтаксисом
Выражения EL могут содержать:
литералыоператоры
ссылки на объекты и бины на странице
ссылки на неявные (implicit) объектывызовы функций
Синтаксис выражений
литералы:
по аналогии с Java, однако допускаются также одинарные кавычки
${false} ${3*8) ${‘World‘), НО ${“Hello “+“World“) – недопустимо!
операторыарифметические
+, - (binary),*, /, div, %, mod, - (unary)
логические
and, &&, or, ||, !, not
условные
==, eq, !=, ne, <, lt, >, gt, <=, le, >=, ge
Empty
возвращает true, если операнд пустой или null
${ empty ““}=true ${ empty null}=true ${ empty 0} =false
Доступ к объектам бинов
Доступ к подключенным при помощи директивы <jsp:useBean> объектам осуществляется по имени (атрибут id)
<jsp:useBean id="myBean" class="ListBean" scope="page" /> ${ myBean }
Для доступа к свойстам бина необходимо указать их имя через точку или в кавычках и в квадратных скобках
${ myBean.myList } или ${ myBean["myList"] }
Для массивов, List и Map возможен доступ по индексу или ключу:
List:
${ myBean["myList"][0] } или ${myBean.myList[0] }
Map:
${myBean.myMap["MyKey"] } или ${myBean.myMap.MyKey }
Неявные (Implicit) объекты
pageContext – контекст JSP. Свойства:
servletContext
session, request, response
param – Map параметров запросов и их единственных значений
paramValues - Map параметров запросов и их значений в виде
массива header headerValues
cookie – Map имен Cookie и их значений
pageScope, requestScope, sessionScope, applicationScope Maps имен переменных, хранящихся в соответствующем scope и их значений
Использование функций в EL
Внутри EL возможен вызов только специально
определенных функций. Вызов методов невозможен!
Функции определяются при помощи того же механизма, что и Custom Tags
Отличия функций от методов:
функции ссылаются на статические методы, которые возвращают значение
функции идентифицируется статически на этапе трансляции страницы, а методы – динамически при ее выполнении
установка параметров и вызов функций является частью
языка EL. Вызов методов в языке EL не предусмотрен.
Определение функций
функцией может быть любой static метод в public классе, который возвращает значение:
package mypkg; public class MyClass {
...
public static boolean isOk(String s, int i ) { return ...;
}
}
определение фунции в TLD:
<function>
<name>equals</name> <function-class>mypkg.MyClass</function-class> <function-signature>
boolean isOk( java.lang.String, int)
</function-signature> </function>