JSTL – Jakarta Standard Tag Library

JSTL là tập hợp các thẻ chuẩn trong JSP, giúp thay thế scriptlet (<% %>) bằng cú pháp dễ đọc hơn và thân thiện với HTML.


Cấu hình Taglib

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

Các JSTL Core Tag cơ bản

c:out – Giống <%= %>

<c:out value="customer.address.street"/>
<c:out value="${'Hello'}"/>

c:set – Gán giá trị vào biến (và có thể chỉ định scope)

<c:set var="x" value="10" />
<c:set var="salary" scope="session" value="${2000 * 2}" />
<c:out value="${salary}" />

c:if – Câu điều kiện

<c:set var="x" value="10" />
<c:if test="${x > 5}">
  <p>x is greater than 5</p>
</c:if>

c:choose, c:when, c:otherwise – If...else nâng cao

<c:set var="day" value="${1}" />
<p>
  <c:choose>
    <c:when test="${day == 0}">Sunday</c:when>
    <c:when test="${day == 1}">Monday</c:when>
    <c:when test="${day == 2}">Tuesday</c:when>
    <c:when test="${day == 3}">Wednesday</c:when>
    <c:when test="${day == 4}">Thursday</c:when>
    <c:when test="${day == 5}">Friday</c:when>
    <c:otherwise>Saturday</c:otherwise>
  </c:choose>
</p>

c:catch – Bắt lỗi

<c:catch var="catchException">
  <% int x = 5 / 0; %>
</c:catch>

<c:if test="${catchException != null}">
  <p>Error: ${catchException.message}</p>
</c:if>

c:forEach – Duyệt mảng

<ul>
  <c:forEach var="color" items="${colors}">
    <li>${color}</li>
  </c:forEach>
</ul>

c:forTokens – Duyệt chuỗi tách bằng dấu phân cách

<c:forTokens items="apple,banana,orange" delims="," var="fruit">
  <c:out value="${fruit}" /><br />
</c:forTokens>