jstl:c:forEach标签的使用

jstl:c:forEach标签的使用

2023.2.28

语法<c:forEach var="name" items="Collection" varStatus="statusName" begin="begin" end="end" step="step"> ${name} </c:forEach>
属性参考

属性作用
items所需要遍历的集合,相当于java中forEach的后半部分
var另起名,相当于java中forEach的前半部分
varStatus遍历的相关信息,分别是:索引(index),已经迭代的次数(count),是否为首个(first),是否为尾个(last)
begin表示从第几个索引开始取元素,默认为0
end表示在第几个索引终止,默认为元素个数-1
step步进,默认为1,即一个一个的读取

用法:比较常见的用法还是遍历一个数组

<c:forEach items="${navModelList}" var="nav">
    <div onclick="window.location.href='${pageContext.request.contextPath}'+'${nav.href}'">${nav.navName}</div>
</c:forEach>

这种方式很简单,对应的其实和java中的增强型for循环用法相似
请添加图片描述

重点是遍历两个数组

<c:forEach items="${teacherModelList}" var="teacher" begin="0" end="2" varStatus="loop">
    <div class="justify-content-center flex-wrap">
         <img src="${imageShowModelList[loop.count-1].imageMessage}">
         <div>${teacher.teacherName}</div>
         <div>${teacher.level}</div>
    </div>
</c:forEach>

由于在jstl中c:forEach将items中的数据作为数组来用,所以可以用到数组的特性:具有索引 进行取值,上述imageShowModelList是和teacherModelList的数据一起遍历的,但是后端不方便将两组数据合并,所以直接利用varStatus获取teacherModelList遍历的状态,然后再作为imageShowModelList的下标取得值,因为count是遍历次数,所以在作为下标时需要 -1,当然可以直接使用 index

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EL 表达式(Expression Language)是一种用于在 Java Web 应用程序中访问和操作数据的简洁语言。它可以嵌入到 JSP 页面中,用于动态生成页面内容。EL 表达式与脚本的区别在于: 1. 语法:EL 表达式使用 `${}` 来引用变量,而脚本通常使用 `<% %>` 或者其他特定的脚本标记来执行代码。 2. 功能:EL 表达式主要用于访问和操作数据,包括访问 JavaBean 属性、访问集合和数组元素、执行算术运算等。脚本可以执行更复杂的逻辑,包括条件语句、循环语句等。 3. 安全性:EL 表达式通常比脚本更安全,因为它有限制的功能,不能直接执行任意的代码。脚本在某些情况下可能存在安全风险,因为它可以执行任意的 Java 代码。 关于 JSTL 中的 c:foreach,它是 JSTLJavaServer Pages Standard Tag Library)标签库中的一个标签,用于循环迭代集合或数组。它的基本使用方式如下: ```jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ... <c:forEach var="item" items="${collection}"> <!-- 循环体 --> ${item} </c:forEach> ``` 其中,`var` 属性指定循环变量的名称,`items` 属性指定要迭代的集合或数组。在循环体中,可以通过 `${item}` 来引用当前迭代的元素。你可以根据实际需求在循环体中进行相应的操作。 注意,在使用 c:foreach 之前,需要确保已经导入了 JSTL标签库,并在 JSP 页面的头部使用 `<%@ taglib %>` 指令声明。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值