JSTL varStatus屬性


JSTL核心標簽庫中c:forEach 的 varStatus屬性

varStatus屬性  類型:String   描述:循環的狀態信息,可以取值index\count\first\last\current   不可以使用EL表達式

 

我們常使用<c:forEach>標簽來遍歷需要的數據,為了方便使用,varStatus屬性可以方便我們實現一些與行數相關的功能,如:奇數行、偶數行差異;最后一行特殊處理等等。varStatus屬性常用參數如下:

 
current:當前這次迭代的(集合中的)項
index:當前這次迭代從 0 開始的迭代計數
count:當前這次迭代從 1 開始的迭代計數
first:用來表明當前這輪迭代是否為第一次迭代的標志,返回true/false
last:用來表明當前這輪迭代是否為最后一次迭代的標志,返回true/false

 示例:代碼段1:

 1 <span style="font-size:18px;"><span style="font-size:14px;"><!-- jstl核心標簽庫中的標簽c:forEach -->  
 2             <c:forEach items="${list}" var="s" varStatus="abc">      
 3                 <div id="div1">   
 4                     ${abc.current}    
 5                     <ul>  
 6                         <li>學號:${s.id}</li>  
 7                         <li>姓名:${s.name}</li>  
 8                         <li>年齡:${s.age}</li>  
 9                         <li>性別:${s.sex}</li>  
10                     </ul>  
11                 </div>  
12             </c:forEach></span>  
1 <span style="font-size:18px;"></span></span>  

在另一頁面中設置了傳遞的參數list為request.setAttribute("list", students);

 

其中students為ArrayList<Students>類型,students中包含了5組數據,格式如下所示,id分別為1~5. 

 代碼段2:

1 <span style="font-size:18px;">    <student id="1">  
2         <name>李一X</name>  
3         <sex></sex>  
4         <age>20</age>  
5     </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改為:
 1 <c:forEach items="${list}" var="s" begin='0' end='4' step='2' varStatus="abc">    
 2                 <div id="div1">   
 3                     ${abc.count}    
 4                     <ul>  
 5                         <li>學號:${s.id}</li>  
 6                         <li>姓名:${s.name}</li>  
 7                         <li>年齡:${s.age}</li>  
 8                         <li>性別:${s.sex}</li>  
 9                     </ul>  
10                 </div>  
11             </c:forEach>

結果如下:

說明:操作list集合共有5條數據,step="2"表明不是逐條循環,而是按步長為2取值。即操作集合中的第1、3、5條數據(見學號),此處不要和左上角varStatus屬性(取值count)的輸出混淆.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM