Язык выражений JSP (EL) упрощает доступ к данным, хранящимся в JavaBeans. JSP EL можно использовать для создания как арифметических, так и логических выражений. В выражениях JSP EL можно использовать целые числа, числа с плавающей запятой, строки, константы true, false и null.
Обычно, когда вам нужно указать значение атрибута в теге JSP, вы просто используете строку:
<jsp:setProperty name="box" property="perimeter" value="100"/>
JSP EL позволяет вам указать выражение для представления значения свойства. Простой синтаксис выражения следующий:
${выражение}Среди них,
выражениеотносится к выражению. Обычными операторами в JSP EL являются
"."и
"[]". Эти два оператора позволяют получить доступ к множеству
JavaBeans Свойства.
Например, приведенное выше
<jsp:setProperty>Теги можно переписать с использованием языка выражений следующим образом:
<jsp:setProperty name="box" property="perimeter" value="${2*box.width+2*box.height}"/>Когда компилятор JSP видит "
${} «После форматирования он генерирует код для оценки выражения и создания замены значения выражения.Вы также можете использовать языки выражений в тексте шаблона этикетки. Например
<jsp:текст>Тег просто вставляет текст из своего тела в вывод JSP:
<jsp:text><h1>Привет, JSP!</h1></jsp:text>
сейчас, в
<jsp:текст>Используйте выражение в теле тега, например:
<jsp:text>Периметр коробки: ${2*box.width + 2*box.height</jsp:text>Круглые скобки можно использовать для организации подвыражений в выражениях EL. Например
${(1 + 2) * 3} равно 9, но ${1 + (2 * 3)} Равен 7.Чтобы отключить оценку выражений EL, используйте
страницаИнструкции будут
isELIигнорируетсяЗначение атрибута установлено на
истинный:
<%@ страница isELIgnored ="true|false" %>
Таким образом, выражения EL игнорируются. Если установлено значение
ЛОЖЬ, контейнер оценит выражение EL.
Выражения EL поддерживают большинство арифметических и логических операторов, предоставляемых Java:
| Оператор | описывать |
|---|---|
| . | ПосетитеФасольАтрибут или запись на карте |
| [] | Доступ к элементам массива или связанного списка |
| ( ) | Организация подвыражения для изменения приоритета |
| + | добавлять |
| - | минус или отрицательный |
| * | брать |
| / или div | удалять |
| % или мод. | Возьмите форму |
| == или уравнение | Тест на равенство |
| != или нет | Проверьте, не равно ли |
| < или лт | Проверьте, меньше ли |
| > или GT | Проверьте, больше ли |
| <= или ле | Проверьте, меньше ли или равно |
| >= Ордж | Проверьте, больше или равно |
| && или и | Проверка логического И |
| || или или | Проверка логического ИЛИ |
| ! или нет | отрицание теста |
| пустой | Проверка на нулевое значение |
JSP EL позволяет использовать функции в выражениях. Эти функции должны быть определены в библиотеке пользовательских тегов. Синтаксис использования функции следующий:
${ns:func(параметр1, параметр2, ...)}ns относится к пространству имен,
функцияОтносится к имени функции,
параметр1Относится к первому параметру,
параметр2 относится ко второму параметру и так далее. Например, есть функция
фн: длина, определенный в библиотеке JSTL, можно использовать для получения длины строки следующим образом:
${fn:length("Узнайте мою длину")}Чтобы использовать функции из любой библиотеки тегов, вам необходимо установить эти библиотеки на сервер, а затем использовать
<taglib>Теги включают эти библиотеки в файлы JSP.
JSP EL поддерживает неявные объекты, перечисленные в следующей таблице:
| Поиск предметов | описывать |
|---|---|
| область видимости страницы | область страницы |
| область запроса | объем запроса |
| сессияScope | область сеанса |
| область применения | область применения |
| параметр | Параметры объекта запроса, строка |
| параметрызначения | Параметры объекта Request, коллекция строк |
| заголовок | HTTP-заголовок, строка |
| заголовокЗначения | HTTP-заголовок, коллекция строк |
| initParam | Параметры инициализации контекста |
| печенье | Значение файла cookie |
| Контекст страницы | pageContext текущей страницы |
Вы можете использовать эти объекты в выражениях так же, как переменные. Далее будет приведено несколько примеров, чтобы лучше понять эту концепцию.
Контекст страницыОбъект находится в JSP
Контекст страницыСсылка на объект. Проходить
Контекст страницыОбъект, к которому вы можете получить доступ
запросОбъект. Например, посетите
запросСтрока запроса, передаваемая объектом, выглядит следующим образом:
${pageContext.request.queryString}
область видимости страницы,
область запроса,
сессияScope,
область примененияПеременные используются для доступа к переменным, хранящимся на различных уровнях области видимости.
Например, если вам нужно явно получить доступ к
область примененияМногослойный
коробкаДоступ к переменным можно получить следующим образом:
applicationScope.box.
параметри
параметрызначенияОбъект, используемый для доступа к значениям параметров с помощью
request.getParameterМетоды и
request.getParameterValuesМетод.
Например, доступ к файлу с именем
заказпараметры, вы можете использовать такие выражения:
${param.order} , или ${парам["заказ"]} .В следующем примере показано, как получить доступ к запросу в
имя пользователяПараметры:
<%@ page import="java.io.*,java.util.*" %><% String title = "Доступ к параметру запроса" %><html><head><title><% out.print(title ); %></title></head><body><center><h1><% out.print(title); %></h1></center><div; align="center"><p>${param["username"]</p></div></body></html>Объект param возвращает одну строку, а
параметрызначенияObject возвращает массив строк.
заголовоки
заголовокЗначенияОбъект используется для доступа к заголовку информации с помощью
request.getHeaderМетоды и
request.getHeadersМетод.
Например, чтобы получить доступ к файлу с именем
пользовательский агентИнформационный заголовок, вы можете использовать выражение следующим образом:
${header.user-agent} , или ${header["пользовательский агент"]} .В следующем примере показано, как получить доступ
пользовательский агентИнформационный заголовок:
<%@ page import="java.io.*,java.util.*" %><% String title = "Пример пользовательского агента"; %><html><head><title><% out.print(title ); %></title></head><body><center><h1><% out.print(title); %></h1></center><div; align="center"><p>${header["user-agent"]</p></div></body></html>Результаты бега следующие:

Объект заголовка возвращает одно значение, а headerValues возвращает массив строк.