我有一個後臺servlet過來的集合,不是某一個具體對象的,而且還是一個雙重循環。
<% List list = (List) request.getParameter("list");
所以在JSP頁面就不能再這樣了
for(int i=0;i<list.size();i++)
因爲.size()是不能用的。
用JSTL標籤
c:forEach標籤的items屬性支持Java平臺所提供的所有標準集合類型。
varStatus用於創建限定了作用域的變量(該變量只在當前標籤體內起作用)。不過,由varStatus屬性命名的變量並不存儲當前索引值或當前元素,而是賦予javax.servlet.jsp.jstl.core.LoopTagStatus類的實例。
current:當前這次迭代的(集合中的)項。
index:當前這次迭代從0開始的迭代索引。
count:當前這次迭代從1開始的迭代計數。
first:用來表明當前這輪迭代是否爲第一次迭代,該屬性爲boolean類型。
last:用來表明當前這輪迭代是否爲最後一次迭代,該屬性爲boolean類型。
begin:begin屬性的值。
step:step屬性的值
先導入標籤庫
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
我想要遍歷出我想要的值,所以用<c:if>條件 <c:if/>
進行判斷
<table>
<tr>
<td>學生學號</td>
<td>學生姓名</td>
<td>學生班級</td>
<td>分數</td>
</tr>
<c:forEach items="${requestScope.OneScoreList}" var="row" varStatus = "f1"> //OneScoreList是後臺setAttribute("OneScoreList",list)的值
<tr>
<c:forEach items="${row}" var="item" varStatus="f2" begin="0">
<c:if test="${f2.index==0 }">
<td><c:out value="${item}" /></td>
<c:set var="stuid" value="${item}" />
</c:if>
<c:if test="${f2.index==1 }">
<td><c:out value="${item}" /></td>
</c:if>
<c:if test="${f2.index==2 }">
<td><c:out value="${item}" /></td>
</c:if>
<c:if test="${f2.index==7 }">
<td><c:out value="${item}" /></td>
</c:if>
</c:forEach>
</tr>
</c:forEach>
</table>