Скачать презентацию EXPRESSION LANGUAGE Expression Language JSR 245 Скриптовый Скачать презентацию EXPRESSION LANGUAGE Expression Language JSR 245 Скриптовый

12_el.pptx

  • Количество слайдов: 17

EXPRESSION LANGUAGE EXPRESSION LANGUAGE

Expression Language JSR 245 Скриптовый язык доступ к Java компонентам ○ более наглядный, чем Expression Language JSR 245 Скриптовый язык доступ к Java компонентам ○ более наглядный, чем с помощью действий вычисления выражений имеет свой синтаксис Составная часть JSP (c JSP 2. 1) Kolesnikov D. O. SED KNURE 2

Синтаксис EL Общий вид: ${EL expression} Выражение может включать: операторы EL / литералы арифиметические Синтаксис EL Общий вид: ${EL expression} Выражение может включать: операторы EL / литералы арифиметические выражения конструкции доступа к полям атрибутов конструкции доступа к элементам контейнеров массивы / списки / карты неявные объекты вызов функций (стандартные/user-defined) Kolesnikov D. O. SED KNURE 3

Литералы - это константы. В выражениях EL могут быть использованы следующие литералы: Boolean: true Литералы - это константы. В выражениях EL могут быть использованы следующие литералы: Boolean: true / false Integer: 43 / 0 Double: 443. 11 E 3 / 443. 11 String: 'str' / "str" экранирование в строках: ' " \ Нул-тип: null Kolesnikov D. O. SED KNURE 4

Доступ к полям бинов user. get. Login() ${user. login} ~ ${user[ Доступ к полям бинов user. get. Login() ${user. login} ~ ${user["login"]} ~ ${user['login']} Поиск атрибута с именем user: page request session application атрибут не найден - вывода нет атрибут найден вызов метода get. Login и приведение к String вывод результата Kolesnikov D. O. SED KNURE 5

Доступ к элементам Массив: ${ar['1']} ~ ${ar[ Доступ к элементам Массив: ${ar['1']} ~ ${ar["1"] ${ar[index-as-attribute]} Список: ${list['1']} ~ ${list["1"] ${list[name-of-index-attribute]} Карта: ${map['key']} ~ ${map["key"]} ~ ${map. key} ${map[name-of-key-as-attribute]} key – строка. Kolesnikov D. O. SED KNURE 6

Операторы []. Выражение expr-a. identifier-b эквивалентно expr-a[ Операторы []. Выражение expr-a. identifier-b эквивалентно expr-a["identifier-b"] При вызове функций (см. последний слайд) expr-a. identifier-b(params) expra["identifier-b"](params) Kolesnikov D. O. SED KNURE 7

Контейнеры атрибутов Неявные объекты, тип Map<String, Object> page. Scope request. Scope session. Scope application. Контейнеры атрибутов Неявные объекты, тип Map page. Scope request. Scope session. Scope application. Scope Определены для использования внутри выражений. Поиск атрибута user только в области session: ${session. Scope. user. login} Kolesnikov D. O. SED KNURE 8

Неявные объекты Контейнеры, имеют тип Map<String, Value> Контейнер элементы контейнера param. Values <имя парам. Неявные объекты Контейнеры, имеют тип Map Контейнер элементы контейнера param. Values <имя парам. , массив значений> header <имя заголовка, значение> header. Values <имя заг. , массив значений> cookie <имя cookie, объект Cookie> init. Param <имя парам. контекста, значение> массив значений – массив строк Kolesnikov D. O. SED KNURE 9

Логические операции && || ! and or not ===> И по краткой схеме ===> Логические операции && || ! and or not ===> И по краткой схеме ===> ИЛИ по краткой схеме ===> ОТРИЦАНИЕ Оба операнда приводятся к Boolean. Kolesnikov D. O. SED KNURE 10

Оператор empty Проверяет на пустоту объект. Пример: ${empty x} Возвращает true если x: 1) Оператор empty Проверяет на пустоту объект. Пример: ${empty x} Возвращает true если x: 1) null 2) строка нулевой длины 3) массив длиной 0 4) пустые Map или Collection Во всех других случаях возвращает false Kolesnikov D. O. SED KNURE 11

Операции сравнения == eq ===> равно != ne ===> не равно Для сравнения используется Операции сравнения == eq ===> равно != ne ===> не равно Для сравнения используется метод equals. < lt ===> меньше > gt ===> больше <= le ===> меньше или равно >= ge ===> больше или равно Для сравнения используется метод compare. To. Если один из операндов или оба равны null, то результат операций false, кроме ==/eq: null ==> true null eq null ==> true Kolesnikov D. O. SED KNURE 12

Унарный минус Меняет знак числа на противоположный. Пример: ${-4} Если операнд null, результат 0 Унарный минус Меняет знак числа на противоположный. Пример: ${-4} Если операнд null, результат 0 Замечание: операция унарный + в EL не определена. Kolesnikov D. O. SED KNURE 13

Условный оператор выбора Вид: A? B: C Значение A ===> Результат true false ===> Условный оператор выбора Вид: A? B: C Значение A ===> Результат true false ===> B C Kolesnikov D. O. SED KNURE 14

Арифметические операции + * / % div mod ===> ===> сложение вычитание умножение деление Арифметические операции + * / % div mod ===> ===> сложение вычитание умножение деление остаток от деления Если один из операндов null, вместо него будет подставлен 0. Пример: ${2+3*4} Kolesnikov D. O. SED KNURE 15

Определение функций Определить публичный статический метод в некотором классе. В TLD библиотеки определить имя Определение функций Определить публичный статический метод в некотором классе. В TLD библиотеки определить имя функции и ее сигнатуру по сигнатуре метода. Связать функцию с классом, который ее реализует. На JSP странице подключить библиотеку, вызывать функцию. Kolesnikov D. O. SED KNURE 16

Пример определения функции public class A { JAVA CLASS public static String full. Name(User Пример определения функции public class A { JAVA CLASS public static String full. Name(User user) {. . . } } mylib TLD uri string func. Name com. my. A java. lang. String full. Name(com. my. User) <%@ taglib uri="uri string" prefix="mylib" %> ${mylib: func. Name(user)} Kolesnikov D. O. SED KNURE JSP 17