Expression Language в JSTL

В JSTL вводится понятие Expression Language (EL). EL используется для упрощения доступа к данным, хранящимся в различных областях видимости (page, request, application) и вычисления простых выражений.

EL вызывается при помощи конструкции “${имя}”.

Начиная с версии спецификации JSP 2.0 / JSTL 1.1, EL является частью JSP и поддерживается без всяких сторонних библиотек. С версии web-app 2.4 атрибут isELIgnored по умолчанию имеет значение true. В более ранних версиях необходимо указывать его в директиве page со значение true.

EL-идентификатор ссылается на переменную, возвращаемую вызовом PageContext.findAttribute(имя). В общем случае переменная может быть сохранена в любой области видимости: page(PageContext), request(HttpServletRequest), session (HttpSession), application (ServletContext). В случае если переменная не найдена, возвращается null. Также возможен доступ к параметрам запроса через предопределённый объект paramValues и к заголовкам запроса через requestHeaders.

Данные приложения, как правило, состоят из объектов, соответствующих спе­цификации JavaBeans, или представляют собой коллекции, такие как List, Map, Array и др. EL предоставляет доступ к этим объектам при помощи операторов “.” и “[]”. Применение этих операторов зависит от типа объекта. Например:

<c:out value=”${student.name}”/>

<!–пример # 4 : правильный jsp-документ : simple2.jspx –>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

xmlns:c="http://java.sun.com/jsp/jstl/core"

version="2.0">

<jsp:directive.page contentType=

"text/html; charset=Utf-8"/>

<html>

<head><title>Простое использование EL</title></head>

<body>

<c:set var="login" value="Бендер" scope="page"/>

<c:out value="${login} in Rio"/>

<br/>

<c:out value="Бендер в байтовом виде: ${login.bytes} "/>

</body></html>

</jsp:root>

С помощью оператора “.” можно вызывать некоторые методы класса, к которому принадлежит объект. Вызов login.bytes в переводе на обычную Java означает login.getBytes().

В результате запуска этого документа в браузер будет выведено:

Бендер in Rio
Бендер в байтовом виде: [B@edf730

Операторы в EL поддерживают наиболее часто используемые манипуляции данными.

Типы операторов:

Стандартные операторы отношения:

== (или eq), != (или neq), < (или lt), > (или gt), <= (или le), >= (или ge).

Арифметические операторы: +, , *, / (или div), % (или mod).

Логические операторы: && (или and), || (или or), ! (или not).

Оператор empty – используется для проверки переменной на null, или “пустое значение”. Термин “пустое значение” зависит от типа проверяемого объекта. Например, нулевая длина для строки или нулевой размер для коллекции.

Например:

<c:if test=”${not empty user and user.name neq ‘guest’}>

User is Customer.

</c:if>

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100