SpringMVC學習之JSTL條件行為和遍歷行為詳解
JSTL條件行為和遍歷行為
JSTL的條件行為標簽有四個:if,choose,when,otherwise標簽
1、if標簽
是對某一個條件進行測試,結果為true就執(zhí)行它的body content。測試結果保存在Boolean對象中,并創(chuàng)建有屆變量來保存這個Boolean對象。利用var和scope屬性分別定義有界變量的名稱和范圍。
兩種形式:
1) 沒有body content
<c:if test="condition" var="varName" [scope="page|request|session|application"] />
此情況的var 一般是通過其他標簽在同一個JSP的后續(xù)階段再進行測試
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標簽
choose,when和Java中的switch,case類似
choose標簽中必須嵌有一個或者多個when標簽,每個when標簽都表示一種可以計算和處理的情況,otherwise標簽則用于默認的條件塊,假如沒有任何一個when標簽的處理結果為true,則otherwise將被處理,otherwise必須放在最后一個when之后.
choose和otherwise標簽沒有屬性,when標簽必須帶有定義測試條件的test屬性,用來決定是否處理bodycontent.
3、遍歷行為forEach
3.1 forEach 會無數(shù)次的反復遍歷body content 或者對象的集合
可以被遍歷的對象包括java.util.Collection,java.util.Map的全部實現(xiàn),以及對象數(shù)組或者主類型,有兩種形式:
1) 固定的次數(shù)重復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 | 字符串 | 保存遍歷狀態(tài)的有界變量的名稱,類型值是javax.servlet.jsp.jstl.core.LoopTagStatus,帶有count屬性,返回當前的次數(shù) |
| begin+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項目開始,如果沒有指定items,遍歷將從設定的索引值開始,如果指定begin必須大于等于0 |
| end+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項目結束,如果沒有指定items,遍歷將從設定的索引值結束 |
| step+ | 整數(shù) | 遍歷將只處理間隔指定step的項目,從一個項目開始,在這種情況下,step的值必須大于等于1 |
PS:var創(chuàng)建的有界變量的名稱只在該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 | 字符串 | 引用遍歷當前項目的有界變量名稱 |
| items+ | 支持的任意類型 | 遍歷的對象的集合 |
| varStatus | 字符串 | 保存遍歷狀態(tài)的有界變量的名稱,類型值是javax.servlet.jsp.jstl.core.LoopTagStatus,帶有count屬性,返回當前的次數(shù) |
| begin+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項目開始,如果沒有指定items,遍歷將從設定的索引值開始,如果指定begin必須大于等于0 |
| end+ | 整數(shù) | 如果指定items,遍歷將從指定的索引處的項目結束,如果沒有指定items,遍歷將從設定的索引值結束 |
| step+ | 整數(shù) | 遍歷將只處理間隔指定step的token,從一個token開始,在這種情況下,step的值必須大于等于1 |
| delims+ | 字符串 | 一組分隔符 |
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot?@PostConstruct無效的解決
這篇文章主要介紹了springboot?@PostConstruct無效的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
基于SpringBoot實現(xiàn)上傳2種方法工程代碼實例
這篇文章主要介紹了基于SpringBoot實現(xiàn)上傳工程代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08

