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

JSTL 核心標籤庫完全指南:核心、格式化、SQL、XML、函數五大類標籤詳解與安裝配置

     編輯:Java 綜合教學

JSP 標準標籤庫 (JSTL) 實戰手冊

JSTL (JSP Standard Tag Library) 封裝了 JSP 應用中最通用的核心功能(迭代、條件判斷、格式化、數據庫操作、XML 處理等),是替代腳本的最佳實踐。本文系統整理五大標籤庫用法、安裝步驟及引用語法。

一、 環境安裝 (Tomcat 為例)

  1. 下載 jakarta-taglibs-standard-current.zip (官網: Apache Archive)。
  2. 解壓,將 standard.jar 和 jstl.jar 複製到項目 WEB-INF/lib/ 目錄下。
  3. 在 JSP 頁面頭部引入對應的 Taglib 指令即可使用。

二、 五大標籤庫速查總表

功能類別前綴URI核心用途
核心標籤chttps://java.sun.com/jsp/jstl/core流程控制、變量操作、URL處理、迭代
格式化標籤fmthttps://java.sun.com/jsp/jstl/fmt數字、日期、貨幣格式化/解析、國際化
SQL 標籤sqlhttps://java.sun.com/jsp/jstl/sql數據庫查詢、更新、事務、數據源配置
XML 標籤xhttps://java.sun.com/jsp/jstl/xmlXML 解析、XPath 查詢、XSLT 轉換
函數標籤fnhttps://java.sun.com/jsp/jstl/functions字符串操作 (長度、截取、替換、大小寫等)

三、 核心標籤庫 - 高頻必會

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

標籤說明典型示例
<c:out>輸出數據,自動轉義 HTML,防 XSS``
<c:set> / <c:remove>設置/移除作用域變量``
<c:if> / <c:choose> <c:when> <c:otherwise>條件判斷 (單分支/多互斥分支)見下方代碼塊
<c:forEach>通用迭代 (List、Map、數組、Range)`...`
<c:forTokens>按分隔符分割字符串迭代`...`
<c:import>引入外部資源 (URL/相對路徑),比 include 更強``
<c:redirect> / <c:url>重定向 / 構建帶參數 URL``
<c:catch>捕獲異常,存入變量`<%-- risky code --%>`

條件判斷示例

<c:choose>
  <c:when test="${score >= 90}">優秀</c:when>
  <c:when test="${score >= 60}">及格</c:when>
  <c:otherwise>不及格</c:otherwise>
</c:choose>

四、 格式化標籤庫 - 國際化與數據展示

引用: `<%@ taglib prefix="fmt" uri="https://java.sun.com/jsp/jstl/fmt" %>`

  • <fmt:formatNumber>:數字/貨幣/百分比格式化 (type, pattern, currencySymbol)。
  • <fmt:formatDate>:日期時間格式化 (pattern="yyyy-MM-dd HH:mm", type="both", dateStyle="full")。
  • <fmt:parseNumber> / <fmt:parseDate>:字符串解析為數字/日期對象。
  • <fmt:setLocale> / <fmt:bundle> / <fmt:message>:國際化資源綁定與顯示。
  • <fmt:requestEncoding>:設置 Request 編碼 (需在最頂部使用)。

五、 SQL 標籤庫 - 原型開發利器 (生產環境慎用)

引用: `<%@ taglib prefix="sql" uri="https://java.sun.com/jsp/jstl/sql" %>`

<sql:setDataSource dataSource="jdbc/myDS" />  <!-- 或驅動/URL/用戶/密碼 -->
<sql:query var="users" sql="SELECT * FROM user WHERE age > ?">
  <sql:param value="${param.minAge}" />
</sql:query>
<c:forEach items="${users.rows}" var="u">
  ${u.name} - ${u.email}
</c:forEach>

<sql:update sql="INSERT INTO log(msg) VALUES (?)">
  <sql:param value="新用戶註冊" />
</sql:update>

<sql:transaction> <!-- 事務塊 -->
  <sql:update ... />
  <sql:update ... />
</sql:transaction>

六、 XML 標籤庫 - XML 處理

引用: `<%@ taglib prefix="x" uri="https://java.sun.com/jsp/jstl/xml" %>`

額外依賴: 需將 XercesImpl.jar、xalan.jar 放入 Tomcat `lib` 目錄。

  • <x:parse>:解析 XML 文檔/字符串,存入變量 (`var="doc"`) 或指定輸出 (`varDom="doc"`)。
  • <x:out select="$doc//book/title" />:XPath 表達式輸出。
  • <x:forEach select="$doc//book" var="book">:迭代節點。
  • <x:if select="$book/@category='tech'"> / <x:choose>:條件判斷。
  • <x:transform xslt="style.xsl">:XSLT 轉換。

七、 函數標籤庫 - 字符串處理工具箱

引用: `<%@ taglib prefix="fn" uri="https://java.sun.com/jsp/jstl/functions" %>`

函數說明
fn:contains(str, substr)包含子串判斷 (區分大小寫)
fn:containsIgnoreCase不區分大小寫包含判斷
fn:startsWith / fn:endsWith前綴/後綴判斷
fn:indexOf(str, substr)子串首次出現索引
fn:substring(str, begin, end)截取子串 [begin, end)
fn:substringBefore/After(str, substr)指定子串前/後的部分
fn:split(str, delim)分割字符串為數組
fn:join(arr, delim)數組元素連接為字符串
fn:replace(str, before, after)替換子串
fn:toUpperCase / toLowerCase大小寫轉換
fn:trim(str)去除首尾空白
fn:length(obj)獲取字符串長度/集合大小
fn:escapeXml(str)轉義 XML 特殊字符

八、 最佳實踐建議

  1. 盡量使用 JSTL 替代 Scriptlet (`<% %>`),實現邏輯與視圖分離,代碼更易維護。
  2. SQL 標籤僅用於原型/簡單應用,企業級開發請使用 Service/DAO 層 + 連接池。
  3. 格式化標籤處理國際化 時,配合 ResourceBundle 使用。
  4. XML 標籤處理複雜 XML 時,注意 XPath 性能,大文檔建議後端解析後傳入。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved