在使用JSTL的核心标签库forEach之前,首先需要在JSP中通过taglib指令引入核心标签库:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
一、基本使用
标签用于遍历集合中的对象,并能重复执行标签主体内容。它的基本用法如下所示:
主体内容
标签每次从items的集合中取出一个元素,并把它存放在只能标签内部才能访问的范围中,并用var的取值作为引用名称,通过该名称可以在标签主体内访问当前遍历的元素。
例如下方代码创建了一个List集合,然后通过
遍历集合,并把集合中的元素打印到页面上:

运行以上代码,得到的显示结果为“Itcast Itheima”。以上标签代码等价于以下Java程序片段:

第一段和第三段Java程序片段完成标签的任务,即在每一次循环中,从list中取出一个元素,把它作为e命名变量存在页面范围内,接着执行标签的主体内容,然后从页面范围内删除该变量,从而确保只有标签主体内容才能访问e变量。
二、标签的varStatus属性
varStatus属性用于指定一个变量,引用一个javax.servlet.jsp.jstl.core.LoopTagStatus类型的对象,该对象只能在标签内部通过指定的变量名称来访问,它包含了从集合中取出的当前元素的状态信息。
count:当前元素在集合中的序号,从1开始计数。
index:当前元素在集合中的索引,从0开始计数。
first:当前元素是否是集合中的第一个元素。
last:当前元素是否是集合中的最后一个元素。
以下代码演示了使用了varStatus属性的标签:

以上代码的展现结果如下图所示:

三、标签的begin、end和step属性
bengin属性:指定循环的起始索引。
end属性:指定循环的结束索引。
step属性:指定步长。
以下代码用于循环遍历List集合,输出索引从1到4的元素:

以上代码的打印结果为“index1 index2 index3 index4”。
如果没有为标签设置items属性,那么就直接把每次循环的索引赋值给var指定的命名变量。如下打印的结果为"1 3 5 7 9"

四、标签可以遍历的对象

可以遍历的对象包括:

java.util.set、java.util.List、java.util.Map、java.util.Iterator和java.util.Enumeration接口的实现类。

Java数组。

以逗号分隔的字符串。

以下代码遍历Map类型的集合:

打印结果为:

k3:ccccc

k1:aaaaa

k2:bbbbb

以下代码遍历Java数组:

打印结果为:s1 s2 s3

以下遍历访问字符串"aaa,bbb,ccc"中被逗号分隔的字符串:

打印结果为:aaa bbb ccc

From:http://bbs.itcast.cn/article-245-1.html

JSTL之forEach的使用详解(简单的技术说得很详细)的更多相关文章

  1. java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

    对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. java泛型详解 1. 概述 泛型在 ...

  2. Zookeeper系列二:分布式架构详解、分布式技术详解、分布式事务

    一.分布式架构详解 1.分布式发展历程 1.1 单点集中式 特点:App.DB.FileServer都部署在一台机器上.并且访问请求量较少 1.2  应用服务和数据服务拆分  特点:App.DB.Fi ...

  3. 常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

    常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML ...

  4. Http协议详解(转)>>>写的很好

    声明:本片文章非原创,仅供自己学习并分享 内容来源于博客园作者MIN飞翔的HTTP协议详解地址http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html ...

  5. 详解Vue.js 技术

    本文主要从8个章节详解vue技术揭秘,小编觉得挺有用的,分享给大家. 为了把 Vue.js 的源码讲明白,课程设计成由浅入深,分为核心.编译.扩展.生态四个方面去讲,并拆成了八个章节,如下: 准备工作 ...

  6. 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

    VM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核. BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾 ...

  7. window64 PHP ffmpeg详解简单上手 音频amr转mp3

    从网上找了一大堆关于window 64 ffmpeg的信息,都是又长又不关键,让人难消化. 我只要简单的amr转MP3格式而已. 终于搞明白.自己总结了下! 希望能帮助到喜欢言简意赅,一眼上手的同学. ...

  8. [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. js数组中indexOf/filter/forEach/map/reduce详解

    今天在网上看到一篇帖子,如题: 出处:前端开发博客 (http://caibaojian.com/5-array-methods.html) 在ES5中一共有9个Array方法,分别是: Array. ...

随机推荐

  1. Jenkins简明入门(一) -- 安装

    如今Jenkins官网的Guide里使用了Docker,网上很多Jenkins入门教程都已过时了,所以写这一篇入门教程. 官网的Guide Link是:https://jenkins.io/doc/p ...

  2. button点击切换,获取按钮ID

    <!DOCTYPE html> <html> <head lang="zh-CN"> <meta charset="UTF-8& ...

  3. 点(x1, y1)关于点(x0, y0)逆时针旋转a度后的坐标求解

    问题描述: 求点(x1, y1)关于点(x0, y0)逆时针旋转a度后的坐标 思路: 1.首先可以将问题简化,先算点(x1, y1)关于源点逆时针旋转a度后的坐标,求出之后加上x0,y0即可. 2.关 ...

  4. JPA 的 CascadeType 属性 和 FetchType属性 和 各种映射关系

    代码地址:https://gitee.com/a247292980/lgp20151222 CascadeType CascadeType.PERSIST级联新增(又称级联保存): CascadeTy ...

  5. 实践详细篇-Windows下使用VS2015编译安装Caffe环境(CPU ONLY)

    学习深度学习背景 最近在做一款抢票软件,由于12306经常检测账号状态,抢票抢着抢着就需要重新登录了,然后登录是需要验证码的.所以我最开始是想到了使用java基于感知哈希算法pHash做相似度匹配识别 ...

  6. 重写轮子之 GaussionNB

    我仿照sk-learn 中 GaussionNB 的结构, 重写了该算法的轮子,命名为 MyGaussionNB, 如下: # !/usr/bin/python # -*- coding:utf-8 ...

  7. c++ Struct和Class的区别

    C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能.struct能包含成员函数吗? 能!struct能继承吗? 能!!stru ...

  8. 在Spring Boot中输出REST资源

    前面我们我们已经看了Spring Boot中的很多知识点了,也见识到Spring Boot带给我们的各种便利了,今天我们来看看针对在Spring Boot中输出REST资源这一需求,Spring Bo ...

  9. pthon核心编程-读书笔记:知识点摘录与总结(方便理解和快速记忆)

    Python 中的列表(大小可变的数组)和字典(哈希表)就是内建于语言本身的.在核心语言中提供这些重要的构建单元,可以鼓励人们使用它们, 缩短开发时间与代码量,产生出可读性更好的代码.C不提供, c+ ...

  10. 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)

    ---------------------------------------------------------------------------------------------- [版权申明 ...