SpringMVC學(xué)習(xí)之JSTL條件行為和遍歷行為詳解
JSTL條件行為和遍歷行為
JSTL的條件行為標(biāo)簽有四個(gè):if,choose,when,otherwise標(biāo)簽
1、if標(biāo)簽
是對(duì)某一個(gè)條件進(jìn)行測試,結(jié)果為true就執(zhí)行它的body content。測試結(jié)果保存在Boolean對(duì)象中,并創(chuàng)建有屆變量來保存這個(gè)Boolean對(duì)象。利用var和scope屬性分別定義有界變量的名稱和范圍。
兩種形式:
1) 沒有body content
<c:if test="condition" var="varName" [scope="page|request|session|application"] />
此情況的var 一般是通過其他標(biāo)簽在同一個(gè)JSP的后續(xù)階段再進(jìn)行測試
2)
<c:if test="conditin" [var="varName"] [scope="page|request|session|application"] > body content </c:if>
屬性 | 類型 | 描述 |
test+ | 布爾 | 決定處理任何現(xiàn)有bodycontent的測試條件 |
var | 字符串 | 引用測試條件值的有界變量名稱;var的類型為Boolean |
scope | 字符串 | var定義的有界變量的范圍 |
PS:模擬else的情況可一使用兩次if,一次正常,一次相反
2、choose when 和otherwise標(biāo)簽
choose,when和Java中的switch,case類似
choose標(biāo)簽中必須嵌有一個(gè)或者多個(gè)when標(biāo)簽,每個(gè)when標(biāo)簽都表示一種可以計(jì)算和處理的情況,otherwise標(biāo)簽則用于默認(rèn)的條件塊,假如沒有任何一個(gè)when標(biāo)簽的處理結(jié)果為true,則otherwise將被處理,otherwise必須放在最后一個(gè)when之后.
choose和otherwise標(biāo)簽沒有屬性,when標(biāo)簽必須帶有定義測試條件的test屬性,用來決定是否處理bodycontent.
3、遍歷行為forEach
3.1 forEach 會(huì)無數(shù)次的反復(fù)遍歷body content 或者對(duì)象的集合
可以被遍歷的對(duì)象包括java.util.Collection,java.util.Map的全部實(shí)現(xiàn),以及對(duì)象數(shù)組或者主類型,有兩種形式:
1) 固定的次數(shù)重復(fù)body content
<c:forEach [var="varName"] begin="begin" end="end" step="step" > body content </c:forEach>
2) 用于遍歷對(duì)象集合
<c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [ end="end"] [step="step"]> body content </c:forEach>
屬性 | 類型 | 描述 |
var | 字符串 | 引用遍歷當(dāng)前項(xiàng)目的有界變量名稱 |
items+ | 支持的任意類型 | 遍歷的對(duì)象的集合 |
varStatus | 字符串 | 保存遍歷狀態(tài)的有界變量的名稱,類型值是javax.servlet.jsp.jstl.core.LoopTagStatus,帶有count屬性,返回當(dāng)前的次數(shù) |
begin+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項(xiàng)目開始,如果沒有指定items,遍歷將從設(shè)定的索引值開始,如果指定begin必須大于等于0 |
end+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項(xiàng)目結(jié)束,如果沒有指定items,遍歷將從設(shè)定的索引值結(jié)束 |
step+ | 整數(shù) | 遍歷將只處理間隔指定step的項(xiàng)目,從一個(gè)項(xiàng)目開始,在這種情況下,step的值必須大于等于1 |
PS:var創(chuàng)建的有界變量的名稱只在該forEach中使用,一到</c:forEach>處就會(huì)被刪除。
3.2 forTokens標(biāo)簽
forTokens標(biāo)簽用來遍歷以特定的分隔符隔開的令牌,用delims指定的分隔符,將元素分開
語法如下:
<c:forTokens items ="stringOfTokens" delims="delimiters" [var="varName" ] [varStatus="varStatusname"] [begin="begin"] [end="end" ] [step="step"]> body content </c:forTokens>
屬性 | 類型 | 描述 |
var | 字符串 | 引用遍歷當(dāng)前項(xiàng)目的有界變量名稱 |
items+ | 支持的任意類型 | 遍歷的對(duì)象的集合 |
varStatus | 字符串 | 保存遍歷狀態(tài)的有界變量的名稱,類型值是javax.servlet.jsp.jstl.core.LoopTagStatus,帶有count屬性,返回當(dāng)前的次數(shù) |
begin+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項(xiàng)目開始,如果沒有指定items,遍歷將從設(shè)定的索引值開始,如果指定begin必須大于等于0 |
end+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項(xiàng)目結(jié)束,如果沒有指定items,遍歷將從設(shè)定的索引值結(jié)束 |
step+ | 整數(shù) | 遍歷將只處理間隔指定step的token,從一個(gè)token開始,在這種情況下,step的值必須大于等于1 |
delims+ | 字符串 | 一組分隔符 |
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 守護(hù)線程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java語言機(jī)制是構(gòu)建在JVM的基礎(chǔ)之上的,意思是Java平臺(tái)把操作系統(tǒng)的底層給屏蔽起來,所以它可以在它自己的虛擬的平臺(tái)里面構(gòu)造出對(duì)自己有利的機(jī)制,而語言或者說平臺(tái)的設(shè)計(jì)者多多少少是收到Unix思想的影響,而守護(hù)線程機(jī)制又是對(duì)JVM這樣的平臺(tái)湊合,于是守護(hù)線程應(yīng)運(yùn)而生2017-05-05關(guān)于@RequestParam注解的使用(簡單易懂)
這篇文章主要介紹了關(guān)于@RequestParam注解的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01SpringBoot項(xiàng)目中新增脫敏功能的實(shí)例代碼
項(xiàng)目中,由于使用端有兩個(gè),對(duì)于兩個(gè)端的數(shù)據(jù)權(quán)限并不一樣。Web端可以查看所有數(shù)據(jù),小程序端只能查看脫敏后的數(shù)據(jù),這篇文章主要介紹了SpringBoot項(xiàng)目中新增脫敏功能,需要的朋友可以參考下2022-11-11詳解mybatis foreach collection示例
這篇文章主要介紹了詳解mybatis foreach collection的相關(guān)資料,需要的朋友可以參考下2017-10-10在Android的應(yīng)用中實(shí)現(xiàn)網(wǎng)絡(luò)圖片異步加載的方法
這篇文章主要介紹了在Android的應(yīng)用中實(shí)現(xiàn)網(wǎng)絡(luò)圖片異步加載的方法,一定程度上有助于提高安卓程序的使用體驗(yàn),需要的朋友可以參考下2015-07-07Mybatis-Plus實(shí)體類注解方法與mapper層和service層的CRUD方法
CRUD是指在做計(jì)算處理時(shí)的增加(Create)、讀取查詢(Retrieve)、更新(Update)和刪除(Delete)幾個(gè)單詞的首字母簡寫。主要被用在描述軟件系統(tǒng)中DataBase或者持久層的基本操作功能,下面讓我們一起看看吧2022-03-03