1. 程式人生 > >EL表示式之 c:forEach 標籤

EL表示式之 c:forEach 標籤

<%@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>