標籤:style blog http java color 使用 strong 資料
<c:forEach>標籤用於通用資料迴圈,它有以下屬性
屬 性 |
描 述 |
是否必須 |
預設值 |
items |
進行迴圈的項目 |
否 |
無 |
begin |
開始條件 |
否 |
0 |
end |
結束條件 |
否 |
集合中的最後一個項目 |
step |
步長 |
否 |
1 |
var |
代表當前項目的變數名 |
否 |
無 |
varStatus |
顯示迴圈狀態的變數 |
否 |
無 |
varStatus 屬性
JSTL中的varStatus和 var 屬性一樣,varStatus 用於建立限定了範圍的變數。不過,由 varStatus 屬性命名的變數並不儲存當前索引值或當前元素,而是賦予 javax.servlet.jsp.jstl.core.LoopTagStatus 類的執行個體。該類定義了一組特性,它們描述了迭代的目前狀態,下面列出了這些特性:
特性 Getter 描述current getCurrent() 當前這次迭代的(集合中的)項index getIndex() 當前這次迭代從 0 開始的迭代索引count getCount() 當前這次迭代從 1 開始的迭代計數first isFirst() 用來表明當前這輪迭代是否為第一次迭代的標誌last isLast() 用來表明當前這輪迭代是否為最後一次迭代的標誌begin getBegin() begin 屬性值end getEnd() end 屬性值step getStep() step 屬性值
用c:forEach 中vaStatus的屬性可以獲得迭代的自身狀態,如:
<c:forEach var=”" items=”" varStatus=”status”>
<c:out value=”${status.current}”/> 當前對象
<c:out value=”${status.index}”/> 此次迭代的索引
<c:out value=”${status.count}”/> 已經迭代的數量
<c:out value=”${status.first}”/> 是否是第一個迭代對象
<c:out value=”${status.last}”/> 是否是最後一個迭代對象
</c:forEach>
<c:forEach>標籤的items屬性支援Java平台所提供的所有標準集合類型。此外,您可以使用該操作來迭代數組(包括基本類型數組)中的元素。它所支援的集合類型以及迭代的元素如下所示:
java.util.Collection:調用iterator()來獲得的元素。
java.util.Map:通過java.util.Map.Entry所獲得的執行個體。
java.util.Iterator:迭代器元素。
java.util.Enumeration:枚舉元素。
Object執行個體數組:數組元素。
基本類型值數組:經過封裝的數組元素。
用逗號定界的String:分割後的子字串。
javax.servlet.jsp.jstl.sql.Result:SQL查詢所獲得的行。
<%
response.setCharacterEncoding("GB2312");
ArrayList student = (ArrayList)request.getAttribute("list");
int size = student.size();
for(int i = 0;i<size;i++)
{
Student stu = (Student)student.get(i);
out.println("SID="+stu.getSid());
out.println("SName="+stu.getSname());
out.println("Score="+stu.getScore());
}
%>
將以上程式碼片段用JSTL改寫:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<body>
<table>
<c:forEach var="stu" items="${list}">
<tr>
<td>
SID=${stu.sid}
</td>
<td>
SName=${stu.sname}
</td>
<td>
Score=${stu.score}
</td>
</tr>
</c:forEach>
</table>
</body>
</html>