<c:forEach>标签的使用
2007年03月10日 15:46<c:forEach>标签的使用
在JSP的开发中,迭代是经常要使用到的操作。例如,逐行的显示查询的结果等。在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出。现在,通过JSTL的迭代标签可以在很大的程度上简化迭代操作。
JSTL所支持的迭代标签有两个,分别是<c:forEach>和<c:forTokens>。在这里介绍的是<c:forEach>标签。
简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容。它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数。
<c:forEach>标签的语法定义如下所示。
<c:forEach var="name" items="expression" varStatus="name"
begin="expression" end="expression" step="expression">
body content
</c:forEach>
<c:forEach>标签具有以下一些属性:
l var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。
l items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。
l varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
l begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
l end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
l step:迭代的步长。
<c:forEach>标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:
l java.util.Collection:调用iterator()来获得的元素。
l java.util.Map:通过java.util.Map.Entry所获得的实例。
l java.util.Iterator:迭代器元素。
l java.util.Enumeration:枚举元素。
l Object实例数组:数组元素。
l 基本类型值数组:经过包装的数组元素。
l 用逗号定界的String:分割后的子字符串。
l javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。
不论是对整数还是对集合进行迭代,<c:forEach>的varStatus属性所起的作用相同。和var属性一样,varStatus用于创建限定了作用域的变量(改变量只在当前标签体内起作用)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所示:
l current:当前这次迭代的(集合中的)项。
l index:当前这次迭代从0开始的迭代索引。
l count:当前这次迭代从1开始的迭代计数。
l first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。
l last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。
l begin:begin属性的值。
l end:end属性的值
l step:step属性的值
下面就来看两个基本的例子,第一个例子是依次输出集合内的元素。
<c:forEach var="item" items="${contents}" varStatus="status">
$status.count:${item}
</c:forEach>
下面的例子是一个固定次数的迭代,用来输出1到9的平方。
<c:forEach var="x" begin="1" end="9" step="1">
${x*x}
</c:forEach>
分享到:
相关推荐
在JavaServer Pages (JSP) 开发中,`c:forEach`标签是Java Expression Language (EL) 和 JavaServer Pages Standard Tag Library (JSTL) 的一部分,它提供了一个方便的方式来迭代数组、集合、Map或其他可迭代的数据...
#### 一、标签属性详解 ##### 1. `var` `var` 属性用于定义每次循环中使用的变量名,该变量将被设置为当前迭代中的元素。 **示例:** ```jsp <c:forEach var="item" items="${list}"> ${item} </c:forEach> ``` ...
本文将详细介绍如何利用`c:forEach`标签来遍历这种嵌套的数据结构。 #### 1. 基础知识介绍 在Java Web项目中,通常会使用`ModelAndView`或`ModelMap`等容器来传递数据至前端页面。这些容器可以存放任何类型的Java...
在这个主题"**c标签-if-foreach-jar**"中,主要涉及到的是JSTL的两个核心标签`<c:if>`和`<c:forEach>`,它们是JSTL提供的条件判断和循环控制标签,通常与`jstl.jar`包一起使用。 首先,让我们详细了解**<c:if>**...
首先,我们需要理解JSTL的核心标签库`<c:forEach>`和`<c:if>`,它们将在动态合并单元格的过程中起到关键作用。`<c:forEach>`用于遍历集合,而`<c:if>`用于执行条件判断。 第一种方法是基于列的合并。假设我们有一个...
C标签库提供了一些类似于Java编程中的控制结构,例如`<c:if>`, `<c:forEach>`, `<c:choose>`, `<c:set>`等,这些标签能够帮助开发者更方便地在JSP页面上进行逻辑处理,而无需过多地编写脚本let或Java表达式。...
在 jstl 中,判断 list 中是否包含某个值可以使用 c:forEach 标签和 c:if 标签来实现。下面是一个简单的示例代码: ```jsp <c:set var="iscontain" value="false" /> <c:forEach items="${sessionScope....
总结来说,`C-FOREACH`标签在JSP中提供了遍历集合的方便方式,通过定义`items`、`var`、`begin`、`step`等属性,可以灵活控制迭代过程。在实际开发中,利用`C-FOREACH`能够提高代码的可读性和维护性,减少不必要的...
jstl forEach 标签的 `items` 属性支持 Java 平台所提供的所有标准集合类型,包括: * `java.util.Collection`:调用 `iterator()` 来获得的元素。 * `java.util.Map`:通过 `java.util.Map.Entry` 所获得的实例。 ...
这个“一个类似foreach的简单自定义标签”是一个示例,它实现了与JSTL(JavaServer Pages Standard Tag Library)中的`<c:forEach>`标签类似的功能,用于遍历集合数据并进行渲染。 自定义标签的核心在于TLD(Tag ...
在上面的代码中,我们首先使用 c:forEach 标签遍历图片的集合,并使用 varStatus 属性来获取当前图片的索引。然后,我们使用 c:if 标签来判断图片的索引是否是 3 的倍数,如果是,则输出 tr 标签,以便换行展示图片...
下面将详细解释文件中涉及的关键知识点。 ### C标签简介 C标签是JSTL的核心标签库,它提供了处理条件逻辑、迭代、URL操作、国际化等常用功能的一系列标签,使得开发者在JSP页面中可以更简洁地进行逻辑控制和数据...
假设有一个列表`list`,其中包含了多个字符串,我们可以使用`<c:forEach>`标签来遍历这个列表并显示每个元素: ```jsp <c:forEach var="item" items="${list}" varStatus="status"> 当前元素:${item} - 索引:${...
以下是对JSTL遍历功能的详细解释。 1. JSTL核心库(Core Library): JSTL的核心库提供了用于处理常见JSP任务的标签,如迭代、条件判断、URL处理等。在遍历方面,`<c:forEach>`标签是最常用的一个。 2. `<c:...
本文主要关注 JSTL 中的迭代标签,特别是 `<c:forEach>` 和 `<c:forTokens>`,并以具体示例进行详细说明。 #### 二、JSTL 迭代标签概述 在 JSP 页面中,迭代通常是必不可少的操作之一,尤其是在处理列表数据时。...
以下是关于`<c:forEach>`、`<c:out>`、`<c:set>`和`<c:remove>`这四个JSP标签的详细解释。 1. `<c:forEach>`:这是JSP中的迭代标签,用于遍历集合或数组。它可以在HTML或其他内容中重复渲染一段代码。例如,如果你...
`c:forEach` 标签与 `c:forEach` 的 `varStatus` 属性 `varStatus`属性提供了一些额外的信息,如当前元素的位置、是否是第一个或最后一个等。 示例: ``` <c:forEach items="${arry1}" var="e" varStatus="status...
以下是Core标签库中几个关键标签的详细解释: 1. **<c:out>** 标签: - `<c:out>`标签用于在客户端输出文本内容或表达式的结果。它可以避免直接使用`<%= %>`表达式带来的XSS攻击风险,因为默认情况下,它会自动对...
本文将对 JSTL 标签库进行详细的解释,涵盖 catch、choose、forEach、forTokens、if、import、otherwise、out、param、redirect、remove、set 和 url 等标签。 catch 标签: catch 标签用于捕获 JSP 元素在其体中...