
- JSP基礎教程
- JSP - 首頁
- JSP - 概述
- JSP - 環境設定
- JSP - 架構
- JSP - 生命週期
- JSP - 語法
- JSP - 指令
- JSP - 動作
- JSP - 隱式物件
- JSP - 客戶端請求
- JSP - 伺服器響應
- JSP - HTTP 狀態碼
- JSP - 表單處理
- JSP - 編寫過濾器
- JSP - Cookie 處理
- JSP - 會話跟蹤
- JSP - 檔案上傳
- JSP - 日期處理
- JSP - 頁面重定向
- JSP - 點選計數器
- JSP - 自動重新整理
- JSP - 傳送郵件
- 高階 JSP 教程
- JSP - 標準標籤庫
- JSP - 資料庫訪問
- JSP - XML 資料
- JSP - Java Bean
- JSP - 自定義標籤
- JSP - 表示式語言
- JSP - 異常處理
- JSP - 除錯
- JSP - 安全性
- JSP - 國際化
- JSP 有用資源
- JSP - 常見問題解答
- JSP - 快速指南
- JSP - 有用資源
- JSP - 討論
JSP - 標準標籤庫 (JSTL) 教程
本章我們將學習JSP中的不同標籤。JavaServer Pages Standard Tag Library (JSTL) 是一個包含許多JSP應用程式常用核心功能的有用JSP標籤集合。
JSTL 支援常見的結構化任務,例如迭代和條件判斷,用於操作XML文件的標籤、國際化標籤和SQL標籤。它還提供了一個框架,用於將現有的自定義標籤與JSTL標籤整合。
安裝 JSTL 庫
要開始使用JSP標籤,您需要先安裝JSTL庫。如果您使用的是Apache Tomcat容器,請按照以下兩個步驟操作:
步驟 1 - 從 Apache Standard Taglib 下載二進位制發行版並解壓壓縮檔案。
步驟 2 - 要從其Jakarta Taglibs 發行版使用 Standard Taglib,只需將發行版 'lib' 目錄中的JAR檔案複製到應用程式的webapps\ROOT\WEB-INF\lib目錄。
要使用任何庫,您必須在每個使用該庫的JSP頂部包含一個<taglib>指令。
JSTL 標籤分類
根據其功能,JSTL標籤可以分為以下可在建立JSP頁面時使用的JSTL標籤庫組:
核心標籤
格式化標籤
SQL 標籤
XML 標籤
JSTL 函式
核心標籤
核心標籤組是最常用的JSTL標籤。以下是將JSTL核心庫包含在您的JSP中的語法:
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
下表列出了核心JSTL標籤:
序號 | 標籤 & 描述 |
---|---|
1 | <c:out>
類似於<%= ... >,但用於表示式。 |
2 | <c:set >
在'scope'中設定表示式計算的結果。 |
3 | <c:remove >
刪除作用域變數(如果指定,則從特定作用域刪除)。 |
4 | <c:catch>
捕獲其主體中發生的任何Throwable,並可選地公開它。 |
5 | <c:if>
簡單的條件標籤,如果提供的條件為真,則計算其主體。 |
6 | <c:choose>
簡單的條件標籤,它為相互排斥的條件操作建立上下文,由<when>和<otherwise>標記。 |
7 | <c:when>
<choose>的子標籤,如果其條件計算結果為'true',則包含其主體。 |
8 | <c:otherwise >
<choose>的子標籤,位於<when>標籤之後,只有在所有先前條件計算結果都為'false'時才執行。 |
9 | <c:import>
檢索絕對或相對URL,並將它的內容公開到頁面、'var'中的字串或'varReader'中的Reader。 |
10 | <c:forEach >
基本的迭代標籤,接受許多不同的集合型別並支援子集化和其他功能。 |
11 | <c:forTokens>
迭代由提供的分隔符分隔的標記。 |
12 | <c:param>
向包含'import'標籤的URL新增引數。 |
13 | <c:redirect >
重定向到新的URL。 |
14 | <c:url>
建立具有可選查詢引數的URL。 |
格式化標籤
JSTL格式化標籤用於格式化和顯示文字、日期、時間和國際化網站的數字。以下是將格式化庫包含在您的JSP中的語法:
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
下表列出了格式化JSTL標籤:
序號 | 標籤 & 描述 |
---|---|
1 | <fmt:formatNumber>
以特定精度或格式呈現數值。 |
2 | <fmt:parseNumber>
解析數字、貨幣或百分比的字串表示形式。 |
3 | <fmt:formatDate>
使用提供的樣式和模式格式化日期和/或時間。 |
4 | <fmt:parseDate>
解析日期和/或時間的字串表示形式。 |
5 | <fmt:bundle>
載入要由其標籤主體使用的資源包。 |
6 | <fmt:setLocale>
將給定的區域設定儲存在區域設定配置變數中。 |
7 | <fmt:setBundle>
載入資源包並將其儲存在命名的作用域變數或包配置變數中。 |
8 | <fmt:timeZone>
指定其主體中任何時間格式化或解析操作的時區。 |
9 | <fmt:setTimeZone>
將給定的時區儲存在時區配置變數中。 |
10 | <fmt:message>
顯示國際化訊息。 |
11 | <fmt:requestEncoding>
設定請求字元編碼。 |
SQL 標籤
JSTL SQL標籤庫提供與關係資料庫(RDBMS)例如Oracle、mySQL或Microsoft SQL Server互動的標籤。
以下是將JSTL SQL庫包含在您的JSP中的語法:
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %>
下表列出了SQL JSTL標籤:
序號 | 標籤 & 描述 |
---|---|
1 | <sql:setDataSource>
建立一個僅適用於原型設計的簡單DataSource。 |
2 | <sql:query>
執行在其主體或透過sql屬性定義的SQL查詢。 |
3 | <sql:update>
執行在其主體或透過sql屬性定義的SQL更新。 |
4 | <sql:param>
將SQL語句中的引數設定為指定的值。 |
5 | <sql:dateParam>
將SQL語句中的引數設定為指定的java.util.Date值。 |
6 | <sql:transaction >
為巢狀的資料庫操作元素提供共享的Connection,設定為將所有語句作為一個事務執行。 |
XML 標籤
JSTL XML標籤提供了一種以JSP為中心的建立和操作XML文件的方法。以下是將JSTL XML庫包含在您的JSP中的語法。
JSTL XML標籤庫具有用於與XML資料互動的自定義標籤。這包括解析XML、轉換XML資料以及基於XPath表示式的流程控制。
<%@ taglib prefix = "x" uri = "http://java.sun.com/jsp/jstl/xml" %>
在繼續示例之前,您需要將以下兩個與XML和XPath相關的庫複製到您的<Tomcat安裝目錄>\lib:
XercesImpl.jar - 從 https://www.apache.org/dist/xerces/j/ 下載
xalan.jar - 從 https://xml.apache.org/xalan-j/index.html 下載
以下是XML JSTL標籤列表:
序號 | 標籤 & 描述 |
---|---|
1 | <x:out>
類似於<%= ... >,但用於XPath表示式。 |
2 | <x:parse>
用於解析透過屬性或標籤主體指定的XML資料。 |
3 | <x:set >
將變數設定為XPath表示式的值。 |
4 | <x:if >
計算測試XPath表示式,如果為真,則處理其主體。如果測試條件為假,則忽略主體。 |
5 | <x:forEach>
迴圈遍歷XML文件中的節點。 |
6 | <x:choose>
簡單的條件標籤,它為相互排斥的條件操作建立上下文,由<when>和<otherwise>標籤標記。 |
7 | <x:when >
<choose>的子標籤,如果其表示式計算結果為'true',則包含其主體。 |
8 | <x:otherwise >
<choose>的子標籤,位於<when>標籤之後,只有在所有先前條件計算結果都為'false'時才執行。 |
9 | <x:transform >
對XML文件應用XSL轉換。 |
10 | <x:param >
與transform標籤一起使用,以在XSLT樣式表中設定引數。 |
JSTL 函式
JSTL包含許多標準函式,其中大多數是常見的字串操作函式。以下是將JSTL函式庫包含在您的JSP中的語法:
<%@ taglib prefix = "fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
下表列出了各種JSTL函式:
序號 | 函式 & 描述 |
---|---|
1 | fn:contains()
測試輸入字串是否包含指定的子字串。 |
2 | fn:containsIgnoreCase()
以不區分大小寫的方式測試輸入字串是否包含指定的子字串。 |
3 | fn:endsWith()
測試輸入字串是否以指定的字尾結尾。 |
4 | fn:escapeXml()
轉義可以解釋為XML標記的字元。 |
5 | fn:indexOf()
返回字串中指定子字串第一次出現的索引。 |
6 | fn:join()
將陣列的所有元素連線到一個字串中。 |
7 | fn:length()
返回集合中的專案數,或字串中的字元數。 |
8 | fn:replace()
返回一個字串,該字串的結果是替換輸入字串中所有出現的給定字串。 |
9 | fn:split()
將字串拆分為子字串陣列。 |
10 | fn:startsWith()
測試輸入字串是否以指定的字首開頭。 |
11 | fn:substring()
返回字串的子集。 |
12 | fn:substringAfter()
返回特定子字串之後字串的子集。 |
13 | fn:substringBefore()
返回特定子字串之前字串的子集。 |
14 | fn:toLowerCase()
將字串的所有字元轉換為小寫。 |
15 | fn:toUpperCase()
將字串的所有字元轉換為大寫。 |
16 | fn:trim()
刪除字串兩端的白空格。 |