EL表示式之 c:forEach 標籤
阿新 • • 發佈:2018-11-28
<%@page import="java.util.HashMap"%> <%@page import="java.util.Map"%> <%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- c:foreach 和java中的for迴圈一樣 --> <!-- 作用1:遍歷一組數 遍歷時包括頭尾 應用:頁碼 begin:遍歷起始索引 必須>=0 end:遍歷結束索引 var: 每次遍歷,系統自動會將正在遍歷的索引存到page域中,key就是var的值,遍歷執行完,系統會自動移除域中的值 foreach中var存的屬性值作用域就在標籤內 step:每次遍歷時的步數 --> <c:forEach begin="0" end="10" var="index" step="3"> <!-- el取出域中存的值 --> <a href="#">${index }</a> </c:forEach> <% List list = new ArrayList(); list.add("12345"); list.add("22345"); list.add("32345"); list.add("42345"); pageContext.setAttribute("list", list); Map map = new HashMap(); map.put("k1", "v1"); map.put("k2", "v2"); map.put("k3", "v3"); map.put("k4", "v4"); pageContext.setAttribute("map", map); %> <!--作用2:遍歷List集合 類似增強for items:要遍歷的集合 集合EL取出集合 自動會遍歷集合中的元素 var:每次遍歷 系統就會將當前遍歷的物件存到page域中 --> <br/> <c:forEach items="${list }" var="item"> <span>hehe ${item }</span> </c:forEach> <!--作用3:遍歷map items:要遍歷的集合 var: 系統在每次遍歷map的元素時會將當前正在遍歷的鍵和值封裝給一個物件 就是item,item有兩個屬性,key,value varStatus: 系統每次遍歷開始時都會將遍歷的狀態封裝為一個物件就是vs,每次遍歷都會對他的值進行修改 代表當前遍歷的狀態 --> <c:forEach items="${map }" var="item" varStatus="vs"> <h4>${item }, ${item.key } , ${item.value }, ${vs },${vs.current },${vs.first },${vs.count },${vs.index }</h4> </c:forEach> </body> </html>