Latest web development tutorials

JSP Expression Language

JSP Expression Language (EL), так что данные доступа, хранящиеся в JavaBean становится очень простым. JSP EL либо могут быть использованы для создания арифметическое выражение также может быть использован для создания логического выражения. В JSP EL выражения могут использовать целое число, число с плавающей точкой, строки, константы истина, ложь, есть нуль.


Простой синтаксис

Как правило, когда необходимо указать значение свойства, когда теги JSP, просто используйте строку:

<jsp:setProperty name="box" property="perimeter" value="100"/>

выражение JSP EL позволяет определить значение свойства. Простой синтаксис выражение выглядит следующим образом:

${expr}

Отличающийся тем, что выражение относится к выражению. В родовом оператора JSP EL является "." И "[]." Эти два оператора позволяют получить доступ широкий спектр встроенных свойств JSP бина через объект.

Например, указанное <JSP: SetProperty> тег может быть переписан с использованием языка выражений следующим образом:

<jsp:setProperty name="box" property="perimeter" 
                 value="${2*box.width+2*box.height}"/>

Когда компилятор JSP, чтобы увидеть "$ {}" после того, как формат, он генерирует код для вычисления выражения, и генерирует заменитель, чтобы заменить значение выражения в свойстве.

Вы можете также использовать язык выражений на вкладке Шаблон текста. Например, <JSP: текст> Тег просто вставляется в текстовое тело JSP выход:

<jsp:text>
<h1>Hello JSP!</h1>
</jsp:text>

Теперь, в: используя выражение <Jsp текст> тег в теле, как это:

<jsp:text>
Box Perimeter is: ${2*box.width + 2*box.height}
</jsp:text>

EL выражения в скобках могут быть использованы для организации подвыражения. Например, $ {(1 + 2) * 3 равняется 9}, но $ {1 + (2 * 3)} = 7.

Хотите отключить оценку выражений EL, то вам необходимо использовать директиву страницы атрибут isELIgnored истина:

<%@ page isELIgnored ="true|false" %>

Таким образом, выражения EL игнорируются. Если установлено значение ложно, то контейнер будет рассчитываться выражения EL.


EL основной оператор

Выражение поддержки EL предоставляется большинством арифметических и логических операторов Java:

операторы описание
, Bean доступ к свойству или запись сопоставления
[] Доступ массив или список элементов
() Организовать подвыражения, чтобы изменить приоритет
+ плюс
- Сохранить или отрицательный
* Умножение
/ Или DIV за исключением
% Или мод Модульное
== Или экв Тест на равенство
! = Или пе Тест ли неравное
<Или л Проверьте, работают ли меньше
> Или GT Тест больше
<= Ор ле Проверить, является ли меньше или равно
> = Или GE Проверьте, работают ли больше или равно
&& Или и Тест логика и
|| Или или Тест логики или
! Или нет Тест отрицается
пустой Проверьте, работают ли нуль

Функция JSP EL

Функция JSP EL позволяет использовать в выражениях. Эти функции должны быть определены в библиотеке пользовательских тегов. Используйте синтаксис функции выглядит следующим образом:

${ns:func(param1, param2, ...)}

нс относится к пространству имен (пространства имен), функ это имя функции, param1 относится к первому аргументу, param2 относится ко второму аргументу, и так далее. Например, существует функция п: длина, определенная в библиотеке JSTL может быть, как это, чтобы получить длину строки:

${fn:length("Get my length")}

Для того, чтобы использовать любую из функций библиотеки тегов, вы будете нуждаться в эти библиотеки, установленные на сервере, а затем использовать тег <TagLib> содержит библиотеки в файле JSP.


JSP EL неявные объекты

Поддержка JSP EL неявные объекты перечислены в следующей таблице:

Скрытые объекты описание
PageScope Область страницы
requestScope запрос сфера
sessionScope сфера сессии
applicationScope Область применения
парам Строка параметров объекта запроса
paramValues Параметр объекта запроса, сбор строка
заголовок Строка заголовка HTTP
HeaderValues заголовок HTTP, коллекция строка
initParam Параметры инициализации контекста
печенье значение Cookie
PageContext Текущая страница PageContext

Вы можете использовать эти объекты в выражении, как, используя ту же переменную. Далее приведу несколько примеров, чтобы лучше понять эту концепцию.


объекты PageContext

PageContext объект является ссылкой на объект JSP PageContext. По объекту PageContext, вы можете получить доступ к объекту запроса. Например, чтобы получить доступ к объекту запроса передается в строке запроса, например:

${pageContext.request.queryString}

Область применения Объекты

PageScope, requestScope, sessionScope, переменная applicationScope используется для получения доступа к данным, хранящимся в каждой переменной уровнях областей видимости.

Например, если вам нужно явно открыть окно applicationScope переменной слой, к нему можно обращаться: applicationScope.box.


Param и paramValues ​​объекты

парам и paramValues ​​объект используется для доступа к значениям параметров, используя методы и request.getParameterValues ​​метод request.getParameter.

Например, доступ к имени параметра порядка, вы можете использовать это выражение: $ {param.order} или $ {параметр [ "порядок"]}.

Следующие примеры показывают, как получить доступ к параметру запроса имени пользователя:

<%@ page import="java.io.*,java.util.*" %>
<%
    String title = "Accessing Request Param";
%>
<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 одну строку, объект paramValues ​​возвращается массив строк.


объекты заголовка и HeaderValues

Заголовок и объект HeaderValues ​​используется для доступа к информации заголовка, используя методы и метод request.getHeaders request.getHeader.

Например, чтобы получить доступ к информации, называется заголовок агента пользователя, вы можете использовать это выражение: $ {header.user-агента} или $ {заголовок [ "User-Agent"]}.

Следующие примеры показывают, как получить доступ к заголовку User-Agent:

<%@ page import="java.io.*,java.util.*" %>
<%
    String title = "User Agent Example";
%>
<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>

Результаты следующие:

JSP-выражение языка

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