在使用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. String 类

    一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创建 ...

  2. React .js框架的环境搭建

    React学习笔记(一)- 环境搭建   最近在学习react相关的知识,刚刚起步,一路遇坑不断.自己做个笔记,方便日后总结,也供相同趣味的小伙伴一起交流探讨. 学习时主要参考官网的教程:https: ...

  3. angular2+ionic2架构介绍

    不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2+typescript 2. 项目结构 3. S ...

  4. JavaScript原型与原型链

    一.数据类型 JavaScript的数据类型可以分为基本数据类型和引用数据类型. 基本数据类型(6种) String Number Boolean null undefined Symbol(ES6) ...

  5. RHEL Linux常用指令

    查询已安装软件包 rpm -qa|grep * 安装软件 rpm -ivh * 查询Linux版本 uname -a lsb_release -a cat /etc/redhat-release ca ...

  6. Go 语言变量作用域

    作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围. Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函数定义中的变量称为形式 ...

  7. PTA中如何出Java题目?

    PTA中如何出Java题目? 很多第一次出题的老师,不知道Java在PTA中是如何处理输入的.写一篇文章供大家参考.比如以下这样的一个题目: 从控制台读入两个数,然后将其相加输出. 对于该题可以有如下 ...

  8. Dynamics CRM2016 使用web api来创建注释时的注意事项

    在使用wei api 创建注释的时候,有个字段需要注意下,就是下面图中的objectid字段,虽然它是个查找字段,但不能像普通的查找字段property@odata.bind来赋值 上代码,注意看倒数 ...

  9. java实例化对象

    摘要:分享牛,分享牛分享,java类加载机制,java实例化对象,java实例化对象机制,java基础. java是如何实例化对象的呢?以及实例化对象的先后顺序是什么?下面我们以测试的方式说明. 1. ...

  10. ubuntu垃圾清理命令

    ubuntu的空间莫名不够用了 通过系统自带的工具磁盘使用分析器,发现var文件下面的log100多个g,这个日志文件是可以删除的,然后tmp文件也是可以删除的. 1.sudo rm -rf /tmp ...