JSP 標準標籤庫(JSTL)


JSP標準標籤庫(JSTL)是一個JSP標籤集合,它封裝了JSP應用的通用核心功能。

JSTL支援通用的、結構化的任務,例如迭代,條件判斷,XML文件操作,國際化標籤,SQL標籤。 除了這些,它還提供了一個框架來使用整合JSTL的自訂標籤。

根據JSTL標籤所提供的功能,可以將其分為5個類別。

  • 核心標籤

  • #格式化標籤


SQL 標籤

  • XML 標籤

  • ##JSTL 函數

JSTL 函式庫安裝


Apache Tomcat安裝JSTL 函式庫步驟如下:

從Apache的標準標籤庫中下載的二進位套件(jakarta-taglibs-standard-current.zip)。下載網址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/############下載jakarta-taglibs-standard-1.1.2.zip 套件並解壓縮,將jakarta-taglibs-standard-1.1.2/lib/下的兩個jar檔:standard.jar和jstl.jar檔拷貝到/WEB-INF/lib/下。 ############接下來我們在web.xml 檔案中加入以下設定:###
……
	<jsp-config>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
	<taglib-location>/WEB-INF/fmt.tld</taglib-location>
	</taglib>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
	<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
	</taglib>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
	<taglib-location>/WEB-INF/c.tld</taglib-location>
	</taglib>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
	<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
	</taglib>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
	<taglib-location>/WEB-INF/sql.tld</taglib-location>
	</taglib>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
	<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
	</taglib>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
	<taglib-location>/WEB-INF/x.tld</taglib-location>
	</taglib>
	<taglib>
	<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
	<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
	</taglib>
	</jsp-config>
……
###使用任何函式庫,你必須在每個JSP檔案中的頭部包含< taglib>標籤。 ########## 核心標籤######核心標籤是最常用的JSTL標籤。引用核心標籤庫的語法如下:###
<%@ taglib prefix="c" 
           uri="http://java.sun.com/jsp/jstl/core" %>
##<c:when>## <c:choose>的子標籤,用來判斷條件是否成立#<c:otherwise>
# 標籤 描述
<c:out> 用於在JSP中顯示數據,就像<%= ... >
#<c:set> 用於保存資料
<c:remove># 用於刪除資料
<c:catch># 用來處理產生錯誤的異常狀況,並且將錯誤訊息儲存起來
<c:if># 與我們在一般程式中使用的if一樣
<c:choose> 本身只當做<c:when>和<c:otherwise>的父標籤
## <c:choose>的子標籤,接在<c:when>標籤後,當<c:when>標籤判斷為false時被執行

#<c :import>

檢索一個絕對或相對 URL,然後將其內容暴露給頁面<c:forEach> 基礎迭代標籤,接受多種集合類型<c:forTokens># 根據指定的分隔符號來分隔內容並迭代輸出<c:param> 用來傳遞給包含或重定向的頁面參數<c:redirect># 重定向至一個新的網址.<c:url> 使用可選的查詢參數來創造一個URL# 格式化標籤JSTL格式化標籤用來格式化並輸出文字、日期、時間、數字。引用格式化標籤庫的語法如下: 標籤<fmt:formatNumber><fmt:parseNumber><fmt:formatDate><fmt:parseDate><fmt:bundle>
<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>
描述
# 使用指定的格式或精確度格式化數字
# 解析一個代表數字,貨幣或百分比的字串
使用指定的風格或模式格式化日期和時間
# 解析一個代表著日期或時間的字串
綁定資源############<fmt:setLocale>####### 指定地區############<fmt:setBundle>####### 綁定資源############<fmt:timeZone>####### 指定時區############<fmt:setTimeZone>###### 指定時區############<fmt:message>####### 顯示資源設定檔資訊############<fmt:requestEncoding>###### 設定request的字元編碼############

SQL標籤

JSTL SQL標籤庫提供了與關係型資料庫(Oracle,MySQL,SQL Server等等)互動的標籤。引用SQL標籤庫的語法如下:

<%@ taglib prefix="sql" 
           uri="http://java.sun.com/jsp/jstl/sql" %>
標籤 描述
<sql:setDataSource># 指定資料來源
<sql:query># 執行SQL查詢語句
<sql:update> 執行SQL更新語句
<sql:param># 將SQL語句中的參數設為指定值
#<sql:dateParam># 將SQL語句中的日期參數設為指定的java.util.Date 物件值
#<sql:transaction> 在共用資料庫連線中提供巢狀的資料庫行為元素,將所有語句以一個交易的形式來執行

# XML 標籤

JSTL XML標籤庫提供了建立和操作XML文件的標籤。引用XML標籤庫的語法如下:

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

在使用xml標籤前,你必須將XML 和XPath 的相關套件拷貝至你的<Tomcat 安裝目錄>\lib下:

  • XercesImpl.jar

    下載位址:http://www.apache.org/dist/xerces/j/

下載網址:http://xml.apache.org/xalan-j/
xalan.jar
# 標籤 描述
<x:out> 與<%= ... >,類似,不過只用於XPath表達式
#<x:parse> 解析 XML 資料
<x:set># 設定XPath表達式
<x:if># 判斷XPath表達式,若為真,則執行本體中的內容,否則跳過本體
#<x:forEach> 迭代XML文件中的節點
<x:choose>###### <x:when>和<x:otherwise>的父親標籤#############<x:when>###### <x:choose>的子標籤,用來進行條件判斷#############<x:otherwise>###### <x:choose>的子標籤,當<x:when>判斷為false時被執行############<x:transform>###### 將XSL轉換套用在XML文件中############<x:param>###### 與<x:transform>共同使用,用於設定XSL樣式表#############

JSTL函數

JSTL包含一系列標準函數,大部分是通用的字串處理函數。引用JSTL函數庫的語法如下:

<%@ taglib prefix="fn" 
           uri="http://java.sun.com/jsp/jstl/functions" %>
函數 描述
fn:contains() 測試輸入的字串是否包含指定的子字串
fn:containsIgnoreCase()# 測試輸入的字串是否包含指定的子字串,大小寫不敏感
fn:endsWith()# 測試輸入的字串是否以指定的後綴結尾
fn:escapeXml() 跳過可以作為XML標記的字元
fn:indexOf()# 傳回指定字串在輸入字串中出現的位置
fn:join() 將陣列中的元素合成一個字串然後輸出
fn:length() 傳回字串長度
fn:replace() 將輸入字串中指定的位置替換為指定的字串然後傳回
fn:split() 將字串以指定的分隔符號分隔然後組成一個子字串陣列並傳回
fn:startsWith() 測試輸入字串是否以指定的前綴開始
fn:substring() 傳回字串的子集
fn:substringAfter()# 傳回字串在指定子字串之後的子集
fn:substringBefore() 傳回字串在指定子字串之前的子集
fn:toLowerCase() 將字串中的字元轉為小寫
fn:toUpperCase() 將字串中的字元轉為大寫
fn:trim()# 移除首位的空白符號