Как любой начинающий 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.
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
20 комментариев к статье "JSTL для написания JSP страниц"