1. 程式人生 > 其它 >JSP標準標籤庫(JSTL)個人使用指南

JSP標準標籤庫(JSTL)個人使用指南

前排提示,本篇僅涉及 JSTL 的配置和簡要介紹 JSTL 的 Core 和 Functions 標籤庫中幾個常用的標籤。更加詳細的內容,博主會貼相應超連結。

注意:本教程使用的 JSTL 1.2,如果你使用的是 JSTL 1.1 或之前的版本,需要匯入 jstl.jar 和 standard.jar 兩個包。可點選 http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 連結下載 JSTL 1.1 及之前的版本。


JSTL 規範由 Sun 公司制定,由 Apache 的 Jakarta 小組負責實現。JSTL 由 5 個不同功能的標籤庫組成,包括 Core、I18N、XML、SQL 以及 Functions;

配置 JSTL

注意:JSTL 現在已經是 Java EE5 的一個組成部分,如果採用支援 Java EE5 或以上版本的整合開發環境開發 Web 應用程式,就不需要再配置 JSTL 了。

JSTL的下載

使用 JSTL 需要引入 JSTL 的 JAR 包和標籤庫描述符檔案(副檔名為 .tld),標籤庫描述符檔案內包含標籤庫中所有標籤的定義、標籤名、功能類及各種屬性。

下載完畢以後可以根據使用的軟體進行配置。

Eclipse 平臺

如果你再用的是 Eclipse 平臺,則需要配置 JSTL。配置 JSTL 的步驟如下:

1)複製 JSTL 的標準實現

在 Tomcat 的 \webapps\examples\WEB-INF\lib 目錄下找到 taglibs-standard-impl-1.2.5.jartaglibs-standard-spec-1.2.5.ja r檔案,然後複製到 Web 工程的 WEB-INF\lib 目錄下。

2)使用 taglib 標記定義字首與 uri 引用

如果使用 Core 標籤庫,首先需要在 JSP 頁面中使用 taglib 標記定義字首與 uri 引用,程式碼如下:

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

如果使用 Functions 標籤庫,首先需要在 JSP 頁面中使用 taglib 標記定義字首與 uri 引用,程式碼如下:

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

IDEA 平臺

1)複製 JSTL 的標準實現

在 Tomcat 的 \webapps\examples\WEB-INF\lib 目錄下找到 taglibs-standard-impl-1.2.5.jartaglibs-standard-spec-1.2.5.ja r檔案,然後複製到 Web 工程的 WEB-INF\lib 目錄下。

2) 拷貝 tlb 檔案

把壓縮包解壓後得將 tld 下的需要引入的 tld 檔案複製到 WEB-INF 目錄下。

接下來我們在 web.xml 檔案中新增以下配置:可以根據需求增刪

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
    </taglib>
    </jsp-config>
</web-app>

使用任何庫,你必須在每個 JSP 檔案中的頭部包含<taglib> 標籤。

核心標籤

JSTL 核心(core)標籤是最常用的 JSTL 標籤,匯入核心標籤庫的語法如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
標籤 說明
<c:out> 將表示式的結果輸出到頁面中,類似於 <%= ...%>
<c:set> 在指定範圍內設定變數或屬性值
<c:if> 類似於 Java if 語句,用於條件判斷
<c:choose> 類似於 Java switch 關鍵字,為 <c:when>和<c:otherwise> 的父標籤
<c:when> <c:choose> 的子標籤,用來判斷條件是否成立
<c:otherwise> <c:choose> 的子標籤,當所有的 <c:when> 標籤判斷為 false 時被執行
<c:forEach> 類似於 Java for,用於迭代集合中的資訊
<c:forTokens> 類似於 Java split,用於分隔字串
<c:remove> 用於刪除資料
<c:catch> 用於捕獲異常
<c:import> 用來匯入靜態或動態檔案
<c:param> 用來傳入引數
<c:redirect> 用於將當前頁面重定向至另一個 URL
<c:url> 用於將 URL 格式化為一個字串

格式化標籤

JSTL 格式化(fmt)標籤可以通過很簡單的方式轉換數字、日期,匯入格式化標籤庫的語法如下。

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
標籤 說明
<fmt:requestEncoding> 設定請求資料的字元編碼
<fmt:setLocale> 用於設定使用者本地化環境
<fmt:bundle> 繫結資源
<fmt:message> 用來從指定的資原始檔中呼叫資訊
<fmt:setBundle> 繫結資源
<fmt:formatNumber> 用於格式化數字、百分比和貨幣
<fmt:parseNumber> 用於解析數字、貨幣和百分比
<fmt:formatDate> 用於使用不同的方式格式化日期
<fmt:parseDate> 用於把字串型別的日期轉換成日期資料型別
<fmt:timeZone> 用於指定時區
<fmt:setTimeZone> 用於設定預設時區

SQL標籤

JSTL SQL 標籤提供了許多操作資料庫(MySQL、Oracle、SQL Server 等)的標籤。雖然在大型的網站中不建議使用這種標籤庫,但在小型網站中經常會用到。匯入 SQL 標籤庫的語法如下。

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
標籤 說明
<sql:setDataSource> 用來在 JSP 頁面中配置資料來源
<sql:query> 查詢資料庫中的資料
<sql:update> 更新資料庫中的資料
<sql:dateParam> 提供日期和時間的動態值
<sql:transaction> 事務管理
<sql:param> 設定 SQL 語句中的動態值

函式標籤

JSTL 函式(fn)標籤大部分是通用的字串處理函式,匯入函式標籤庫的語法如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
標籤 說明
fn:contains() 用於判斷一個字串是否包含指定的字串,區分大小寫
fn:containsIgnoreCase() 用於判斷一個字串是否包含指定的字串,不區分大小寫
fn:endsWith() 用於判斷一個字串是否以指定的字尾結尾
fn:escapeXml() 用於轉義 HTML/XML 中的字元
fn:indexOf() 用於返回字串在指定字串中的開始位置
fn:join() 用來將陣列中的所有元素利用指定的分隔符來連線成一個字串
fn:length() 用於返回指定字串的長度
fn:split() 用於將字串用指定的分隔符分隔為一個子串陣列
fn:startsWith() 用於判斷一個字串是否以指定的字首開頭
fn:substring() 用來返回指定字串的子字串
fn:substringAfter() 用來返回字串中指定子字串後面的部分
fn:substringBefore() 用來返回字串中指定子字串前面的部分
fn:toLowerCase() 用來將指定字串中的所有字元轉為小寫
fn:toUpperCase() 將指定字串中的所有字元轉為大寫
fn:trim() 用來刪除指定字串兩端的空格

The desire of his soul is the prophecy of his fate
你靈魂的慾望,是你命運的先知。