Hướng dẫn sử dụng JSTL trong ứng dụng Java Web

JSTL (JavaServer Pages Standard Tag Library) là một bộ thư viện thẻ tiêu chuẩn được thiết kế để chuẩn hóa việc phát triển các tính năng phổ biến trong JSP, thay thế cho việc mỗi dự án tự viết các thẻ tùy chỉnh riêng lẻ. Được phát triển theo tiêu chuẩn JSR 52, JSTL giúp mã nguồn JSP trở nên tinh gọn, dễ đọc và dễ bảo trì hơn.

Cách thiết lập

Để sử dụng JSTL, bạn cần thực hiện hai bước cơ bản:

  • Thêm các file JAR của thư viện JSTL vào thư mục WEB-INF/lib của dự án.
  • Khai báo thư viện trong tệp JSP bằng chỉ thị taglib: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>.

Các thẻ cốt lõi thường dùng

1. Quản lý biến và dữ liệu

  • <c:set>: Dùng để khởi tạo hoặc cập nhật giá trị biến.
    <c:set var="userRole" value="admin" scope="session" />
    <c:set target="${userObj}" property="accountName" value="nv_test" />
  • <c:out>: Hiển thị giá trị ra trang JSP. Có thể đặt giá trị mặc định nếu biểu thức EL là null.
    <c:out value="${userEmail}" default="Chưa cập nhật" escapeXml="true" />
  • <c:remove>: Xóa một biến đã lưu trong phạm vi chỉ định.
    <c:remove var="tempToken" scope="request" />

2. Xử lý logic

  • <c:catch>: Bao bọc đoạn mã JSP để bắt các ngoại lệ phát sinh.
    <c:catch var="exceptionObj">
        <% int result = 10 / 0; %>
    </c:catch>
    <c:if test="${not empty exceptionObj}">
        Lỗi: ${exceptionObj.message}
    </c:if>
  • <c:if> và <c:choose>: Thực hiện kiểm tra điều kiện.
    <c:if test="${userAge >= 18}"> Người dùng đã trưởng thành </c:if>
    
    <c:choose>
        <c:when test="${status == 'active'}"> Đang hoạt động </c:when>
        <c:otherwise> Tài khoản bị khóa </c:otherwise>
    </c:choose>

3. Vòng lặp

  • <c:forEach>: Dùng để duyệt qua tập hợp (List, Map, Array) hoặc lặp theo số lần xác định.
    <%-- Duyệt danh sách --%>
    <c:forEach items="${employeeList}" var="emp" varStatus="loop">
        ${loop.count}. Tên: ${emp.fullName} - Index: ${loop.index}
    </c:forEach>
    
    <%-- Lặp theo khoảng --%>
    <c:forEach begin="1" end="5" var="num">
        Số thứ tự: ${num} <br/>
    </c:forEach>

Thẻ: JSTL JSP JavaEE JavaWeb

Đăng vào ngày 18 tháng 6 lúc 07:06