在c:if內聲明一個變量,其他方法中可以直接調用
<c:forEach>中item對應迭代器名稱,意思是說一個list方到這裏會在這個循環內依次獲取這個list中每個元素的值,valStatus指該
例子:
<c:if test="${pageBean.inDate.wantWarehouse !=null}" var="testwantWarehouse">
<c:forEach var="sbss" items="${pageBean.data}" varStatus="lll">
${sbss.product_id}
<c:if test="${testwantWarehouse==true}">
${sbss.warehouse_id}</
</c:if>
</c:forEach>
以下轉自https://blog.csdn.net/hu_xuefeng/article/details/51494250
我們常使用<c:forEach>標籤來遍歷需要的數據,爲了方便使用,varStatus屬性可以方便我們實現一些與行數相關的功能,如:奇數行、偶數行差異;最後一行特殊處理等等。varStatus屬性常用參數如下:
current:當前這次迭代的(集合中的)項index:當前這次迭代從 0 開始的迭代計數
count:當前這次迭代從 1 開始的迭代計數
first:用來表明當前這輪迭代是否爲第一次迭代的標誌,返回true/false
last:用來表明當前這輪迭代是否爲最後一次迭代的標誌,返回true/false
示例:代碼段1:
- <span style="font-size:18px;"><span style="font-size:14px;"><!-- jstl核心標籤庫中的標籤c:forEach -->
- <c:forEach items="${list}" var="s" varStatus="abc">
- <div id="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>
- <span style="font-size:18px;"></span></span>
在另一頁面中設置了傳遞的參數list爲request.setAttribute("list", students);
其中students爲ArrayList<Students>類型,students中包含了5組數據,格式如下所示,id分別爲1~5.
代碼段2:
- <span style="font-size:18px;"> <student id="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屬性控制輸出,其分別表示:起始序號,結束序號,跳躍步伐。
- <c:forEach items="${list}" var="s" begin='0' end='4' step='2' varStatus="abc">
- <div id="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)的輸出混淆.