好 之前我们讲完了 我们的条件动作标签
那么 我们来继续说 迭代标签
所谓迭代就是 将某个主体循环多次
也可以循环 集合 对象 map
这个标签叫 forEach
items 就是 我们要循环的数据 注意 这里 操作的也是域对象中的值
begin 开始说 例如 i = 0;i<x;i++ begin 就是开始数 当前写这个 那么就是0
end 就相当于 i = 0;i<x;i++ 中的x 结束值
step 就是默认向前多少 就相当于 ++ 他默认的是 间隔1 也可以设置更大
var 就是现域变量名 就相当于循环中的 i
varStatus 就是当前成员信息 比如当前成员索引 这个用的比较少 了解一下就好
这边 我们主要有两种写法
第一种 就想 我们的for循环一样的 参考代码如下
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<c:forEach var="i" begin="1" end="10" step="2">
<p>${i}</p>
</c:forEach>
</body>
</html>
这个代码可能大家看着有点蒙 但是 我们可以这样去翻译
var 定义变量值 还是 i 然后 i = 1 条件 i 小于等于 10 每次 i + 2 然后中间用EL表达式输出 这个 i i的值
翻译成java代码就是
for(int i = 1;i <= 10;i += 2) {
System.out.println(i);
}
运行 结果就是这样
然后是 第二种情况
遍历数据
这里 我们编写代码如下
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<%
List<String> list = new ArrayList<>();
for (int i = 1;i <= 10; i++) {
list.add("第"+i+"个");
}
request.setAttribute("arryList",list);
%>
<c:forEach items="${arryList}" var="item">
<p>${item}</p>
</c:forEach>
</body>
</html>
这里 我们 先 声明了一个list集合 数据类型是 String的
然后 我们循环 10次 加入 10条数据 add进去
然后 我们将处理好的 list 存入域对象 名字叫 arryList
然后 我们用forEach标签遍历它
我们定义 遍历是数据为 arryList 然后 var 我们设置当前值代理名叫 item
中间用el输出 item
运行结果如下
我们整个list就被输出了