JSTL之forEach的使用详解(简单的技术说得很详细)

在使用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

你可能感兴趣的:(JavaEE)