JSP迭代标签之 forEach循环标签 基本使用讲解

好 之前我们讲完了 我们的条件动作标签

那么 我们来继续说 迭代标签

所谓迭代就是 将某个主体循环多次

也可以循环 集合 对象 map

这个标签叫 forEach

items 就是 我们要循环的数据 注意 这里 操作的也是域对象中的值

begin 开始说 例如 i = 0;i<x;i++ begin 就是开始数 当前写这个 那么就是0

end 就相当于 i = 0;i<x;i++ 中的x 结束值

step 就是默认向前多少 就相当于 ++ 他默认的是 间隔1 也可以设置更大

var 就是现域变量名 就相当于循环中的 i

varStatus 就是当前成员信息 比如当前成员索引 这个用的比较少 了解一下就好

这边 我们主要有两种写法

第一种 就想 我们的for循环一样的 参考代码如下

html 复制代码
<%@ 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代码就是

java 复制代码
for(int i = 1;i <= 10;i += 2) {
   System.out.println(i);
}

运行 结果就是这样

然后是 第二种情况

遍历数据

这里 我们编写代码如下

java 复制代码
<%@ 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就被输出了

相关推荐
草莓熊Lotso9 分钟前
C++11 核心特性实战:列表初始化 + 右值引用与移动语义(附完整代码)
java·服务器·开发语言·汇编·c++·人工智能·经验分享
初夏睡觉1 小时前
从0开始c++,但是重置版,第1篇(c++基本框架)
开发语言·c++
workflower6 小时前
时序数据获取事件
开发语言·人工智能·python·深度学习·机器学习·结对编程
CoderYanger7 小时前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目
java·c语言·开发语言·数据结构·算法·leetcode·职场和发展
C++业余爱好者7 小时前
Java 提供了8种基本数据类型及封装类型介绍
java·开发语言·python
想用offer打牌7 小时前
RocketMQ如何防止消息丢失?
java·后端·架构·开源·rocketmq
林杜雨都7 小时前
Action和Func
开发语言·c#
皮卡龙7 小时前
Java常用的JSON
java·开发语言·spring boot·json
火山灿火山8 小时前
Qt常用控件(三)
开发语言·qt
利刃大大8 小时前
【JavaSE】十三、枚举类Enum && Lambda表达式 && 列表排序常见写法
java·开发语言·枚举·lambda·排序