Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4-1 Мережне програмування / ЛК / Лекция 9 Сетевое программирование - Технологии разработки web-приложений с использованием Java EE (часть 3).pptx
Скачиваний:
110
Добавлен:
02.02.2021
Размер:
120.77 Кб
Скачать

Харьковский Национальный Университет Радиоэлектроники Кафедра Инфокоммуникационной инженерии

Технологии разработки 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>