JSTL核心標籤庫中c:forEach 的 varStatus屬性
阿新 • • 發佈:2019-02-11
我們常使用<c:forEach>標籤來遍歷需要的資料,為了方便使用,varStatus屬性可以方便我們實現一些與行數相關的功能,如:奇數行、偶數行差異;最後一行特殊處理等等。varStatus屬性常用引數如下:
current:當前這次迭代的(集合中的)項index:當前這次迭代從 0 開始的迭代計數
count:當前這次迭代從 1 開始的迭代計數
first:用來表明當前這輪迭代是否為第一次迭代的標誌,返回true/false
last:用來表明當前這輪迭代是否為最後一次迭代的標誌,返回true/false
示例:程式碼段1:
-
<spanstyle="font-size:18px;"
- <c:forEachitems="${list}"var="s"varStatus="abc">
- <divid="div1">
- ${abc.current}
- <ul>
-
<li>學號:${s.id}</li
- <li>姓名:${s.name}</li>
- <li>年齡:${s.age}</li>
- <li>性別:${s.sex}</li>
- </ul>
- </div>
- </c:forEach></span>
-
<spanstyle="font-size:18px;"
在另一頁面中設定了傳遞的引數list為request.setAttribute("list", students);
其中students為ArrayList<Students>型別,students中包含了5組資料,格式如下所示,id分別為1~5.
程式碼段2:
- <spanstyle="font-size:18px;"><studentid="1">
- <name>李一X</name>
- <sex>男</sex>
- <age>20</age>
- </student></span>
1)當代碼段1中為${abc.current}時,顯示介面為(注意最上面一行變化,後面類同):
2)當代碼段1中為${abc.index}時,顯示介面為(注意最上面一行變化,後面類同):
3)當代碼段1中為${abc.count}時,顯示介面為(注意最上面一行變化,後面類同):
4)當代碼段1中為${abc.first}時,顯示介面為(注意最上面一行變化,後面類同):
5)當代碼段1中為${abc.last}時,顯示介面為(注意最上面一行變化,後面類同):
另外可以結合<c:forEach>標籤的begin、end、step屬性控制輸出,其分別表示:起始序號,結束序號,跳躍步伐。
如將示例程式碼段1改為:- <c:forEachitems="${list}"var="s"begin='0'end='4'step='2'varStatus="abc">
- <divid="div1">
- ${abc.count}
- <ul>
- <li>學號:${s.id}</li>
- <li>姓名:${s.name}</li>
- <li>年齡:${s.age}</li>
- <li>性別:${s.sex}</li>
- </ul>
- </div>
- </c:forEach>
說明:操作list集合共有5條資料,step="2"表明不是逐條迴圈,而是按步長為2取值。即操作集合中的第1、3、5條資料(見學號),此處不要和左上角varStatus屬性(取值count)的輸出混淆.