前言:介紹一下<c:forEach>標籤
<c:forEach>循環標籤可以根據循環條件(通常和el表達式使用,el表達式我們有機會再說,在這裏我就默認你會基本的el表達式了),遍歷集合並從中取出我們想要的數據。如果在JSP頁面中使用JAVA代碼來遍歷數據,會使頁面非常混亂,不利於維護和分析。使用<c:forEach>循環標籤可以是頁面更加直觀、簡潔。
<c:forEach>有以下的屬性:
items:指定要遍歷的集合,相當於下面的str
String[] str={"1","2"};
for(String s:str)
var:設置變量名,並從集合中取出一組數據。相當於上面的s
begin:指定循環的起始位置,如果沒有指定,則默認從第一個值開始遍歷
end:指定循環的終止位置,如果沒有指定,則默認循環到最後一個
step:用於指定循環的步長,例如step=“2”,則會隔一個循環。下面會有例子說明
varStatus:用於指定循環的狀態,有一下四個屬性值,這個也比較常用,特別是index屬性值,表示索引值。
注意:在jsp頁面前要加這個,引入jstl標籤庫
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
用法實例講解
第一種:加入items和var
<%String[] str={"1","2","3","4","5","6","7"};
request.setAttribute("str",str);
%>
<c:forEach items="${str}" var="s">
<c:out value="${s}"></c:out><br><!-- 這個是輸出的標籤,相當於System.out.println(s); -->
</c:forEach>
輸出結果:
1 2 3 4 5 6 7
第二種:加入Items、var、begin和end
<%String[] str={"1","2","3","4","5","6","7"};
request.setAttribute("str",str);
%>
<c:forEach items="${str}" var="s" begin="1" end="5">
<c:out value="${s}"></c:out><br><!-- 這個是輸出的標籤,相當於System.out.println(s); -->
</c:forEach>
輸出結果:
2 3 4 5 6
第三種:加入Items、var、begin、end和step
<%String[] str={"1","2","3","4","5","6","7"};
request.setAttribute("str",str);
%>
<c:forEach items="${str}" var="s" begin="1" end="5" step="2">
<c:out value="${s}"></c:out><br><!-- 這個是輸出的標籤,相當於System.out.println(s); -->
</c:forEach>
輸出結果:
2 4 6
第四種:加入Items、var、begin、end、step和status
<%String[] str={"1","2","3","4","5","6","7"};
request.setAttribute("str",str);
%>
<c:forEach items="${str}" var="s" begin="1" end="5" step="2" varStatus="status">
<!--  是換行符,在html中無論你敲多個空格鍵,最終在網頁上只會顯示一個空格,所以我們一般用這個作爲空格 -->
<c:out value="index屬性:${status.index}"></c:out>
<c:out value="count屬性:${status.count}"></c:out>
<c:out value="first屬性:${status.first }"></c:out>
<c:out value="last屬性:${status.last }"></c:out><br>
</c:forEach>
輸出結果:
原來集合:“1”,“2”,“3”,“4”,“5”,“6”,“7” 現在子集合:“2”,“4”,“6”