SpringMVC學習之JSTL條件行為和遍歷行為詳解
阿新 • • 發佈:2021-08-17
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>
屬性 | 型別 | 描述 |
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>
屬性 | 型別 | 描述 |
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>
屬性 | 型別 | 描述 |
var | 字串 | iWLOlqGokb引用遍歷當前專案的有界變數名稱 |
items+ | 支援的任意型別 | 遍歷的物件的集合 |
varStatus | 字串 | 儲存遍歷狀態的有界變數的名稱,遍歷將從設定的索引值結束 |
step+ | 整數 | 遍歷將只處理間隔指定step的token,從一個token開始,step的值必須大於等於1 |
delims+ | 字串 | 一組分隔符 | iWLOlqGokb
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。