JSTL FAQ – часто задаваемые вопросы по JSTL



Вопрос: Как сделать счетчик?
Решение:
вне цикла объявляем переменную:
<c:set var="count" value="0" scope="page" />
и в цикле инкрементируем:
<c:set var="count" value="${count + 1}" scope="page"/>

Вопрос: Как вывести значение переменной?
Решение:
<c:out value="${count}" />

Вопрос: Как проверить что в массиве больше 0 элементов?
Решение:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<c:if test="${fn:length(companies) gt 0}">
   <p>It is greater than 0</p>
</c:if>
gt означает >

Вопрос: Как вычислить выражение?
Решение:
<c:out value="${(outer.index * fn:length(tableEntity.rows)) + inner.index}" />

Вопрос: Как вывести значение без экранирования символов?
Решение:
model.addAttribute("strForOutput", "{ \"name\": \"devtype\" }");

<c:out escapeXml="false" value="${strForOutput}"/>

Вопрос: Как сделать switch конструкцию?
Решение:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:choose> Tag Example</title>
</head>
<body>
<c:set var="salary" scope="session" value="${2000*2}"/>
<p>Your salary is : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 0}">
       Salary is very low to survive.
    </c:when>
    <c:when test="${salary > 1000}">
        Salary is very good.
    </c:when>
    <c:otherwise>
        No comment sir...
    </c:otherwise>
</c:choose>
</body>
</html>

Вопрос: Как локализовать страницу?
Решение:

...