forEach标签可以根据循环条件,遍历数组或集合类(List、Map、Set等等)中的所有或者部分数据。
forEach标签的属性:
items:用于指定被循环遍历的对象(一般都是域对象),该属性的值可以是数组、集合类、字符串和枚举类型;
var:用于指定循环体的变量名,该变量用于存储items指定的对象的成员;
begin:用于指定循环的起始位置,如果没有指定,则从指定对象的第一个元素(或称第0个元素)开始;
end:用于指定循环的终止位置,如果没有指定,默认迭代到集合的最后一位;
step:用于指定循环的步长,即一次循环之后跳多少个元素,不指定的话默认为1;
varStatus:用于指定循环的状态变量,该属性有4个状态属性,如下图:
实例代码如下:
<%@ page import="java.util.List" %><%@ page import="java.util.ArrayList" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html><head><title>JSTL标签的使用</title></head><body><%List list=new ArrayList();for(int i=0;i<10;i++){list.add("str0"+i);}request.setAttribute("list",list);%><c:forEach items="${list}" var="x" begin="0" end="10" step="2">${x} </c:forEach></body></html>
运行结果:
varStatus用的很少,了解即可:
<%@ page import="java.util.List" %><%@ page import="java.util.ArrayList" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html><head><title>JSTL标签的使用</title></head><body><%List list=new ArrayList();for(int i=0;i<10;i++){list.add("str0"+i);}request.setAttribute("list",list);%><table align="center" width="800" border="1" style="border-collapse: collapse"><tr><th>元素内容</th><th>该元素的索引值</th><th>当前循环次数</th><th>是否是第一次循环</th><th>是否是最后一次循环</th></tr><c:forEach items="${list}" var="x" begin="0" end="10" step="1" varStatus="y"><tr><td>${x}</td><td>${y.index}</td><td>${y.count}</td><td>${y.first}</td><td>${y.last}</td></tr></c:forEach></table></body></html>

遍历map集合:
<%@ page import="java.util.List" %><%@ page import="java.util.ArrayList" %><%@ page import="java.util.Map" %><%@ page import="java.util.HashMap" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html><head><title>JSTL标签的使用</title></head><body><%Map map=new HashMap();map.put(1,"wjh");map.put(2,"gsl");map.put(3,"zx");map.put(4,"lj");request.setAttribute("map",map);%><c:if test="${!empty map}"> <!-- 遍历集合前要判断是否为非空 --><table align="center" border="1" style="border-collapse: collapse"><tr align="center"><td>键</td><td>键值</td></tr><c:forEach items="${map}" var="x"><tr align="center"><td>${x.key}</td><td>${x.value}</td></tr></c:forEach></table></c:if></body></html>
运行结果:
