首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JSTL 標籤庫配置與核心用法入門教學

     編輯:Java 相關知識

前言

JSTL (JavaServer Pages Standard Tag Library) 是 JSP 開發中不可或缺的標準標籤庫,它以宣告式標籤取代腳本程式碼,提升頁面可讀性與維護性。本文涵蓋環境配置、Core 標籤庫四大類標籤(通用、條件、迭代、URL)的詳細用法與實戰範例。

一、環境配置

必要 JAR 檔

  • jstl.jar — 標籤庫實作
  • standard.jar — 標準標籤庫支援

將兩個 JAR 放入 WEB-INF/lib 目錄。

頁面引入標籤庫

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

prefix 可自訂,慣用 c、sql、fmt。

二、Core 標籤庫詳解

在 JSP 頁面使用 Core 標籤需引入:

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

1. 通用標籤

標籤功能範例
<c:out>輸出表達式結果,自動轉義 HTML,防 XSS<c:out value="${user.name}" />
<c:set>設定變數或 Bean 屬性<c:set var="username" value="lisi" scope="session"/>
<c:remove>移除指定範圍變數<c:remove var="username" scope="session"/>
<c:catch>捕獲例外並存入變數見下方範例

<c:catch> 異常處理範例

<c:catch var="exception">
    <%
        int i = 5, j = 0, k = i / j; // 觸發 ArithmeticException
    %>
</c:catch>
<c:out value="${exception}" /><br>
<c:out value="${exception.message}" /> <!-- 等同 exception.getMessage() -->

若未發生異常,var 變數會被移除;若省略 var,異常僅被吞噬不保存。

2. 條件標籤

標籤說明
<c:if>單一條件判斷,支援 var 存儲布林結果
<c:choose>多互斥條件容器,配合 <c:when>、<c:otherwise>

<c:if> 範例

<c:if test="${user.visitCount == 1}">
    This is your first visit.
</c:if>

<c:if test="${param.name == 'admin'}" var="result" />
<c:out value="${result}" /> <!-- 輸出 true/false -->

<c:choose> 多條件範例

<c:choose>
    <c:when test="${row.v_money < 10000}">初學下海</c:when>
    <c:when test="${row.v_money >= 10000 && row.v_money < 20000}">身手小試</c:when>
    <c:otherwise>商業能手</c:otherwise>
</c:choose>

3. 迭代標籤 <c:forEach>

支援集合、Map、陣列、範圍整數迭代。

遍歷資料集

<c:forEach items="${finalResult.rows}" var="row">
    <tr class="<%=tdClass[(rank+1)%2]%>">
        <td align="center"><span><%=rank%></span></td>
        <td align="center"><span><c:out value="${row.player_name}"/></span></td>
        <td align="center"><span>¥ <c:out value="${row.money}"/></span></td>
    </tr>
    <% rank++; %>
</c:forEach>

固定次數迭代

<c:forEach var="i" begin="100" end="110" step="2">
    ${i}
</c:forEach>

輸出:100, 102, 104, 106, 108, 110

4. URL 相關標籤(補充)

標籤用途
<c:url>編碼 URL、自動附加 Session ID
<c:param>為 URL 添加查詢參數
<c:redirect>客戶端重導向
<c:import>引入外部資源內容

URL 編碼與參數範例

<c:url value="/search.do" var="searchUrl">
    <c:param name="keyword" value="${param.q}" />
    <c:param name="page" value="1" />
</c:url>
<a href="<c:out value='${searchUrl}'/>">搜尋</a>

三、最佳實踐建議

  1. 盡量避免 Scriptlet:使用 JSTL + EL 表達式替代 <% %>,實現關注點分離。
  2. 善用 scope 屬性:page、request、session、application,按需選擇生命週期。
  3. 防 XSS:<c:out> 預設轉義 HTML,輸出用戶輸入內容時務必使用。
  4. 結合 fmt 標籤庫:處理國際化(<fmt:message>)、日期格式化(<fmt:formatDate>)、數字格式化(<fmt:formatNumber>)。

總結

JSTL Core 標籤庫提供了 JSP 開發所需的核心控制流與資料輸出功能。掌握 <c:out>、<c:set>、<c:if>、<c:choose>、<c:forEach> 等常用標籤,配合 EL 表達式,即可編寫乾淨、可維護的視圖層代碼。進階場景可結合 SQL、XML、格式化等標籤庫,構建功能完整的企業級 Web 應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved