Вернуться в список

JSTL для написания JSP страниц

Как любой начинающий Java EE разработчик вы наверно уже слышали о JSP, а так же том что в JSP можно использовать Java вставки кода, но это является плохим тоном программирования а также не очень безопасно, в этом уроке я покажу как выйти с этого положения когда нужно проверить какое то условие или выполнить цикл на JSP страницы при этом не используя java вставки.

Шаг 1.

Как написать простое web-приложение с использованием JSP страниц вы найдете в статье «WEB-приложение на Java«.

Скачиваем проект с «WEB-приложение на Java» и на его примере я буду демонстрировать работу JSTL.

Шаг 2.

Добавим необходимую зависимость :

<dependency>
   <groupid>jstl</groupid>
   <artifactid>jstl</artifactid>
   <version>1.2</version>
</dependency>

Шаг 3.

В начало JSP страницы вы должны подключить JSTL core:

<%@ taglib uri ="http://java.sun.com/jsp/jstl/core" prefix ="c" %>

В моем случае JSP страница выглядит так:

<%@ taglib prefix ="c" uri ="http://java.sun.com/jsp/jstl/core" %>
   <%@ page contentType ="text/html;charset=UTF-8" language ="java" %>
      <html>
         <head>
            <title>devcolibri.com</title>
         </head>
         <body>
            ${textA}
            ${textB}
         </body>
      </html>

Шаг 4. Синтаксис

1) Переменные

<c:set var ="myName" value ="Alex"/>

В этом случае у нас будет создана переменная которая будет иметь в значение «Alex»

Вызвать эту переменную можно так:

<h1>${myName}</h1>

В результате нам выведет содержимое переменной.

2) Операторы условий

<c:if test ="${10 > 9}">
   <p>True<p>
</c:if>
<c:if test ="${10 < 9}">
   <p>False<p>
</c:if>

Выше продемонстрировано пример if … else в виде jstl тегов, где:

test — это условие при котором оно будет выполнятся.

<c:set var ="num" scope ="session" value ="10"/>
<c:choose>
   <c:when test ="${num <= 0}">
      Если num <= 0
   </c:when>
   <c:when test ="${num > 1000}">
      Если num > 1000
   </c:when>
   <c:otherwise>
      Если не одно условие не есть верно.
   </c:otherwise>
</c:choose>

Это choose который дает возможность выбора, в java аналог switch, choose имеет вложенный тег when который отвечает за определенное действие при условии что test будет истинно.

3) Циклы

<c:forEach var ="num" items ="${list}">
   <p>${num}</p>
</c:forEach>

где:

${num} — суда присваиваются значения со списка list по очереди.

${list} — список значений(объектов).

Внимание!

Вы конечно можете использовать java вставки:

<%
int a = 5;
int b = a + 10;
%>

но если использовать такие вставки то вы не сможете контролировать ход действий или как то их отследить.

По этому рекомендуется использовать jstl и желательно не использовать какие то вычисления или обработки данных на jsp странице, это нужно выполнять на стороне сервера.

Полная документация по JSTL и примеры можно скачать тут: JSTL Documentation En.

Источник: http://devcolibri.com/1250
21.08.2015

    Только зарегистрированные пользователи могут оставить комментарий.
    Вернуться в список
    2017 «Инфокристалл» Сборка от 18.04.2017 03:58
    Контакты | Задать вопрос

    Карта сайта