本文引用於-21天學通javaweb開發,僅用於學習交流。
jsp頁面要使用格式化標籤,必須使用<%@ taglib %>指令,指定格式化標籤。代碼如下
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core %>
1.<c:set>標籤:
jstl提供了能方便定義變量的標籤<c:set>,能夠將變量存儲在JSP範圍中或JavaBean屬性中.其語法分爲以下5種.
1) 指定變量名及變量值,不指定scope(範圍)
<c:set var="username" value="value"></c:set>
2)將value的值儲存到範圍scope的變量中.
<c:set var-="username" value="value" scope="page | request | session | application "></c:set>
3)將本體內容的數據存儲至範圍爲scope的變量中。
<c:set var="varname" scope="page | request | session | application ">本體內容</c:set>
4)將value值儲存到target對象的屬性中。
<c:set value="value" target="target" property="propertyName"></c:set>
5)將本體內容的數據存儲到target對象的屬性中。
<c:set target="target" property="propertyName">本體內容</c:set>
2.<c:out>標籤
<c:out>用來顯示數據的內容,類似與<%= %>,功能比較強大.使用<c:out>輸出內容比使用Scriptlests代碼簡單,利於頁面維護.其語法如下:
1)通過在<c:out>中的value屬性指定需要顯示的值。
<c:out value="value">
2)通過escapeXml屬性設置是否將value中的內容按照原樣輸出.因爲<c:out>默認將< > 、 “ 轉換成< > ' " & 。如果不想轉換,需指定爲false
<c:out value ="value” escapeXml=“true | false”/>
3)通過 default屬性來指定默認值,如果value的值爲null則顯示default的值.
<c:out value="value" default="No data">
4)通過本體內容來指定默認值。如果value的值爲null 則顯示default的值。
<c:out value="value" escapeXml="true| false">本體內容</c:out>
3.<c:remove>標籤
<c:remove>操作用來移除指定範圍的變量.其語法如下:
<c:remove var="number" scope="session">
var屬性指定待刪除變量的名稱,scope屬性是可選的,用來指定刪除變量的範圍,默認爲page.
4.<c:if>標籤
<c:if>標籤用來執行流程控制,功能與java中的if完全相同.其有兩種形式.一種沒有本體內容,一種有本體內容.
1)沒有本體內容的<c:if>標籤格式:
<c:if test="testCondition" var=" varName" [scope="page | request | session | application"] />
其中 test 屬性害死必須填寫的,表示進行判斷的表達式.屬性var定義變量,該變量存放判斷後的結果.scope表示var定義變量的存儲範圍.
2)有本體內容的<c:if>標籤格式:
<c:if test = "testCondition" var="varName" [scope="page | request | session | application "] >本體內容</c:if>
其中 test 屬性必須填寫,表示進行判斷的表達式,屬性var定義變量,該變量存放判斷後的結果.scope表示var定義變量存儲的範圍.
5.<c:choose> <c:when> <c:otherwise>標籤
<c:if>標籤只能判斷一個表達式,而且無法指定如果表達式不成立的執行語句.JSTL提供了類似 if...else...的語句<c:choose>標籤
<c:choose>本身只能當做<c:when>和<c:otherwise>的標籤.其中可以有一個或多個<c:when>標籤.有零個或多個<c:otherwise>標籤.語法如下:
<c:choose>
..
<c:when test="testCondition">**</c:when>
..
<c:otherwise>**</c:otherwise>
</c:choose>
6.<c:forEach>標籤
<c:forEach>標籤兩種語法格式.一種是遍歷集合對象的成員,一種用來使語句循環執行指定的次數.
1)<c:forEach>遍歷集合對象的成員,語法:
<c:forEach [var="varname"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>本體內容<c:forEach>
其中 var 用來存放現在指定到的成員. items 指被迭代的集合對象. varStatus 用來存放現在指到的有關成員的信息. begin 表示開始位置(默認 0).
end 表示結束位置. step 表示步長(默認 1)
2)<c:forEarch>指定語句執行次數,.語法:
<c:forEach [var="varname"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>本體內容</c:forEach>
注意:a) 如果指定了 begin 的屬性,那麼 begin 必須大於 0 ;b)如果指定了 end 屬性,那麼 end 屬性必須大於 begin ;c)如果指定了 step ,屬性大於0
<c:forEach>提供了 varStatus 屬性,主要用來存放現在指到的成員的相關信息. 如: varStatus="s" 會將信息存放在名稱爲s的屬性中.
varStatus的屬性說明;
屬行 | 類型 | 意義 |
index | number | 現在指到的成員的索引 |
count | number | 總共指到的成員的總數 |
first | boolean | 現在指到的成員是否爲第一個成員 |
last | boolean | 現在指到的成員是否爲最後一個成員 |
7.<c:forTokens>標籤
<c:forTokens>用來指定分隔符分隔字符串.語法:
<c:forTokens [var="varname"] items="stringofTokens" delimes="delimiters" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
本體內容<c:forTokens>
其中 var , varStatus , begin , end , step 屬性和<c:forEach>標籤中的用法一樣.
items 屬性表示被分隔的字符串, delims 屬性指定分隔符.
<c:forTokens>不僅可以僅有一個分隔符的字符串,也可以通過設定多個分隔符來分隔有多個分隔符的字符串,只需要設置多個分隔符就可以了,
8.<c:import>標籤
<c:import>可以把其他靜態或動態的文件包含到本身的JSP網頁中,它和JSP動作指令的<jsp:include>最大的差別在於:
<jsp:include>只能包含和自己在同一 web application的文件.
而<c:import>除了能夠包含和自己同一web application的文件外.也可以包含不同web application或其他網站的文件.其語法如下:
<c:import url="url" [context="context"] [var="varname"] [scope="page | request | session | application"] [charEncoding="charEncoding"]>
本體內容</c:import>
或者:
<c:import url="url" [context="context"] varReader="varReaderName" [charEncoding="charEncoding"]>
本體內容</c:import>
<c:import>屬性說明
屬性 | 說明 | 類型 | 是否必需 | 默認值 |
url | 被包含文件的地址 | String | 是 | 無 |
context | 同一Web容器下,其他web站點必須以"/"開頭 | String | 否 | 無 |
var | 存儲被包含文件的內容(以String類型存入) | String | 否 | 無 |
scope | var變量的存儲範圍 | String | 否 | 無 |
charEncoding | 被包含文件的編碼格式 | String | 否 | 無 |
varReader | 存儲被包含文件的內容(以Reader類型存入) | String | 否 | 無 |
9.<c:param>標籤
<c:param>標籤用來傳遞參數,其包含兩個參數.,<c:param>包含兩個屬性name和value。
<c:param>屬性說明
屬性 | 說明 | 類型 | 是否必需 | 默認值 |
name | 參數名稱 | String | 是 | 無 |
value | 參數值 | String | 否 | 本體內容 |
在<c:import>標籤的本體內容中使用<c:param> 其功能主要是:可以將參數傳遞給被包含的文件
10.<c:url>標籤
<c:url>標籤用來生成URL,其語法分爲兩種,一種是不帶參數的,一種是帶參數的。語法:
1)不帶參數的:
<c:url value="value" [context="context"] [var="varName"] [scope="page | request | session | application"] />
2)帶參數:
<c:url value="value" [context="context"] [var="varName"] [scope="page | request | session | application"] >
<c:param>標籤
</c:url>
<c:url>屬性說明
屬性 | 說明 | 類型 | 是否必需 | 默認值 |
value | 執行的URL | String | 是 | 無 |
context | 同一Web容器下,其他web站點必須以"/"開頭 | String | 否 | 無 |
var | 存儲被包含文件的內容(以String類型存入) | String | 否 | 無 |
scope | var變量的存儲範圍 | String | 否 | page |
11.<c:redirect>標籤
使用<c:redirect>可以從一個JSP頁面跳轉到其他的頁面上去,而且可以通過<c:param>標籤傳遞參數。一種是不帶參數,一種是帶參數
1)不帶參數的:
<c:redirect url="url" [context="context"] />
2)帶參數:
<c:redirect uel="url" [context="context"] >
<c:param>
</c:redirect>
<c:redirect>屬性說明
屬性 | 說明 | 類型 | 是否必需 | 默認值 |
url | 跳轉的目標地址 | String | 是 | 無 |
context | 同一Web容器下,其他web站點必須以"/"開頭 | String | 否 | 無 |
如果有寫錯的地方,請指出。我會跟正的。謝謝。