1. 程式人生 > 程式設計 >SpringMVC學習之JSTL條件行為和遍歷行為詳解

SpringMVC學習之JSTL條件行為和遍歷行為詳解

TL條件行為和遍歷行為

JSTL的條件行為標籤有四個:if,choose,when,otherwise標籤

1、if標籤

是對某一個條件進行測試,結果為true就執行它的body content。測試結果儲存在Boolean物件中,並建立有屆變數來儲存這個Boolean物件。利用var和scope屬性分別定義有界變數的名稱和範圍。

兩種形式:

1) 沒有body contwww.cppcns.coment

<c:if test="condition" var="varName" [scope="page|request|session|application"] />

此情況的var 一般是通過其他標籤在同一個JSP的後續階段再進行測試

2)

<c:if test="conditin" [var="varName"] [scope="page|request|session|application"] >
body content
</c:if>
iWLOlqGokb
if標籤的屬性
屬性 型別 描述
test+ 布林 決定處理任何現有bodycontent的測試條件
var 字串 引用測試條件值的有界變數名稱;var的型別為Boolean
scope 字串 var定義的有界變數的範圍

PS:模擬else的情況可一使用兩次if,一次正常,一次相反

2、choose when 和otherwise標籤

choose,when和中的switch,case類似

choose標籤中必須嵌有一個或者多個when標籤,每個when標籤都表示一種可以計算和處理的情況,otherwise標籤則用於預設的條件塊,假如沒有任何一個when標籤的處理結果為true,則otherwise將被處理,otherwise必須放在最後一個when之後.

choose和otherwise標籤沒有屬性,when標籤必須帶有定義測試條件的test屬性,用來決定是否處理bodycontent.

3、遍歷行為forEach

3.1 forEach 會無數次的反覆遍歷body content 或者物件的集合

可以被遍歷的物件包括java.util.Collection,java.util.Map的全部實現,以及物件陣列或者主型別,有兩種形式:

1) 固定的次數重複body content

<c:forEach [var="varName"] begin="begin" end="end" step="step" >
body content
</c:forEach>

2) 用於遍歷物件集合

<c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [ end="end"] [step="step"]>
body content
</c:forEach>
forEach標籤的屬性
屬性 型別 描述
var 字串 引用遍歷當前專案的有界變數名稱
items+ 支援的任意型別 遍歷的物件的集合
varStatus 字串 儲存遍歷狀態的有界變數的名稱,型別值是javax.servlet.jsp.jstl.core.LoopTagStatus,帶有count屬性,返回當前的次數
begin+ 整數 如果指定items,遍歷將從指定的索引處的專案開始,如果沒有指定items,遍歷將從設定的索引值開始,如果指定begin必須大於等於0
end+ 整數 如果指定items,遍歷將從指定的索引處的專案結束,遍歷將從設定的索引值結束
step+ 整數 遍歷將只處理間隔指定step的專案,從一個專案開始,在這種情況下,step的值必須大於等於1

PS:var建立的有界變數的名稱只在該forEach中使用,一到</c:forEach>處就會被刪除。

3.2 forTokens標籤

forTokens標籤用來遍歷以特定的分隔符隔開的令牌,用delims指定的分隔符,將元素分開

語法如下:

<c:forTokens items ="stringOfTokens" delims="delimiters" [var="varName" ] [varStatus="varStatusname"]  [begin="begin"] [end="end" ] [step="step"]>
body content
</c:forTokens>
iWLOlqGokbiWLOlqGokb
forTokens標籤的屬性
屬性 型別 描述
var 字串 引用遍歷當前專案的有界變數名稱
items+ 支援的任意型別 遍歷的物件的集合
varStatus 字串 儲存遍歷狀態的有界變數的名稱,遍歷將從設定的索引值結束
step+ 整數 遍歷將只處理間隔指定step的token,從一個token開始,step的值必須大於等於1
delims+ 字串 一組分隔符

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。