一、JSTL介紹
JSTL(JavaServer Pages Standard Tag Library)由JCP(Java Community Process)指定標準,提供給 Java Web 開發人員一個標準通用的標簽函數庫。和 EL 來取代傳統直接在頁面上嵌入 Java 程序(Scripting)的做法,以提高程序可讀性、維護性和方便性。JSTL 主要由Apache組織的Jakarta Project 實現,容器必須支持Servlet 2.4 且JSP 2.0 以上版本。
JSTL下載地址:http://tomcat.apache.org/taglibs/standard/,最新版本為JSTL 1.2,本文下載的是JSTL1.1
安裝:
解壓jakarta-taglibs-standard-1.1.2.zip,將解壓后lib目錄下的jstl.jar,standard.jar直接拷貝到工程下的WEB-INF/lib/目錄下(如果用的是myeclipse可以不用復制這2個文件,myeclipse有自帶的)。
導入標簽庫:
例如:
%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- uri:用于導入標簽庫的uri。
- prefix:標簽庫的前綴,例如:c:out>,c就是前綴,相當于為標簽取個簡單好記的名字。
- tagdir:指定標簽庫的路徑。
二、JSTL常用標簽:
在JSP頁面中要使用格式化標簽,必須使用%@ taglib%>指令,
%@ taglib prefex="c" uri="http://java.sun.com/jsp/jstl/core" %>
1.c:set>標簽能夠將變量存儲在JSP范圍中或者是JavaBean的屬性中
有五種格式:
(1)
c:set var="username" value="value">/c:set>
制定變量名和變量值
(2)
c:set var="username" value="value" scope="page|request|session|application">/c:set>
將value值保存到范圍為scope的變量中
(3)
c:set var="username" scope="page|request|session|application" >
文本內容
/c:set>
將文本內容的數據存儲到范圍為scope的變量中
(4)
c:set value="value" target="target" property="propertyName">/c:set>
將value值存儲到target對象的屬性中。
(5)
c:settarget="target" property="propertyName">
文本內容
/c:set>
將文本內容的數據存儲到target對象的屬性中
2.c:out>標簽用來顯示數據的內容,其格式語法有四種
(1)
c:out value="value">/c:out>
通過value屬性指定要顯示的值
(2)
c:out value="value" escapeXml="true|false">/c:out>
是否將value中的內容按照原樣輸出
(3)
c:out value="value" default="No Data">/c:out>
通過Default屬性來設置默認值
(4)
c:out value="value" escapeXml="true|false">
文本內容
/c:out>
通過文本內容設置默認的值
3.c:remove>用來移除指定范圍的變量
c:remove var="number" scope="session">
%@page language="java" contentType="text/html;charset=gb2312" %>
%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
!DOCTYPE html>
html>
head>
title>remove標簽的使用/title>
/head>
body>
h1>remove標簽的使用/h1>
hr />
%-- 添加變量number,存儲在page范圍 --%>
c:set var = "number" value="${1+2}" scope="page" />
%-- 輸出變量 --%>
number:c:out value="${pageScope.number}" default="No Data"/>
%-- 移除page范圍number變量 --%>
c:remove var="number" scope="page" />
%-- 輸出變量 --%>
number:c:out value="${pageScope.number}" default="No Data"/>
/body>
/html>
4.c:if>標簽用來執行流程控制
c:if>標簽有兩種格式
(1)沒有本體內容的
c:if test="condition" var = "varName" [scope="{page|request|session|application}"] />
(2)有本體內容的
復制代碼 代碼如下:
c:if test="condition" var = "varName" [scope="{page|request|session|application}"] >本體內容/c:if>
5.c:choose>c:when>c:otherwise>標簽
%@page language="java" contentType="text/html;charset=gb2312" %>
%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
!DOCTYPE html>
html>
head>
title>Choose標簽的使用/title>
/head>
body>
h1>Choose標簽的使用/h1>
hr />
c:choose>
c:when test="${46}">
c:out value="Yes" />
/c:when>
c:otherwise>
c:out value="No" />
/c:otherwise>
/c:choose>
/body>
/html>
6.c:forEach>標簽
一種用來遍歷集合對象的成員
c:forEach [var="username"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"] >
本地內容
/c:forEach>
一種是用來使語句循環執行指定的次數
c:forEach [var="username"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"] >
本地內容
/c:forEach>
7.c:forTokens>標簽,用來根據指定分隔符分割字符串
c:forTokens [var="varname"] items="stringOfTokens" delims="delimiters" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"] >
本地內容
/c:forEach>
8.c:import>標簽,可以把靜態或者是動態的文件包含到本身的JSP網頁中
c:import url="url" [context="context"][var="varname"] [scope = "{page|request|session|application}"] [charEncoding="charEncoding"] >
本地內容
/c:import>
9.c:param>標簽,用來傳遞參數
10.c:url>標簽,用來生成URL
不帶參數的
c:url value="value" [context="context"][var="varname"] [scope = "{page|request|session|application}"] />
帶參數的
c:url url="url" [context="context"][var="varname"] [scope = "{page|request|session|application}"] >
11.c:redirect>標簽,可以從一個JSP頁面跳轉到另一個其他的頁面上去
不帶參數的
c:redirect url="url" [context="context"]/>
帶參數的
c:redirect url="url" [context="context"]>
c:param />標簽
/c:redirect>
您可能感興趣的文章:- JSP中使用JSTL按不同條件輸出內容的方法
- JSP入門教程之客戶端驗證、常用輸出方式及JSTL基本用法
- jsp 使用jstl實現翻頁實例代碼
- jsp中使用jstl導入html亂碼問題解決方法
- JSP和JSTL獲取服務器參數示例
- 關于jsp頁面使用jstl的異常分析
- JSP中常用的JSTL fmt(format格式化)標簽用法整理