<c:forEach>标签用于通用数据循环,它有以下属性
属 性 |
描 述 |
是否必须 |
缺省值 |
items |
进行循环的项目 |
否 |
无 |
begin |
开始条件 |
否 |
0 |
end |
结束条件 |
否 |
集合中的最后一个项目 |
step |
步长 |
否 |
1 |
var |
代表当前项目的变量名 |
否 |
无 |
varStatus |
显示循环状态的变量 |
否 |
无 |
vaStatus 属性
JSTL中的varStatus和 var 属性一样, varStatus 用于创建限定了作用域的变量。不过,由 varStatus 属性命名的变量并不存储当前索引值或当前元素,而是赋予 javax.servlet.jsp.jstl.core.LoopTagStatus 类的实例。该类定义了一组特性,它们描述了迭代的当前状态,下面列出了这些特性:
特性 Getter 描述current getCurrent() 当前这次迭代的(集合中的)项
index getIndex() 当前这次迭代从 0 开始的迭代索引
count getCount() 当前这次迭代从 1 开始的迭代计数
first isFirst() 用来表明当前这轮迭代是否为第一次迭代的标志
last isLast() 用来表明当前这轮迭代是否为最后一次迭代的标志
begin getBegin() begin 属性值
end getEnd() end 属性值
step getStep() step 属性值
用c:forEach 中vaStatus的属性可以获得迭代的自身状态,如:
<c:forEach var=”" items=”" varStatus=”status”>
<c:out value=”${status.current}”/> 当前对象
<c:out value=”${status.index}”/> 此次迭代的索引
<c:out value=”${status.count}”/> 已经迭代的数量
<c:out value=”${status.first}”/> 是否是第一个迭代对象
<c:out value=”${status.last}”/> 是否是最后一个迭代对象
</c:forEach>
<c:forEach>标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:
java.util.Collection:调用iterator()来获得的元素。
java.util.Map:通过java.util.Map.Entry所获得的实例。
java.util.Iterator:迭代器元素。
java.util.Enumeration:枚举元素。
Object实例数组:数组元素。
基本类型值数组:经过包装的数组元素。
用逗号定界的String:分割后的子字符串。
javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。
<%
response.setCharacterEncoding("GB2312");
ArrayList student = (ArrayList)request.getAttribute("list");
int size = student.size();
for(int i = 0;i<size;i++)
{
Student stu = (Student)student.get(i);
out.println("SID="+stu.getSid());
out.println("SName="+stu.getSname());
out.println("Score="+stu.getScore());
}
%>
将以上代码片段用JSTL改写:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<body>
<table>
<c:forEach var="stu" items="${list}">
<tr>
<td>
SID=${stu.sid}
</td>
<td>
SName=${stu.sname}
</td>
<td>
Score=${stu.score}
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
分享到:
相关推荐
### c:foreach 的各种用法详解 在JSP(JavaServer Pages)开发中,`<c:forEach>` 是一个非常重要的标签,它属于JSTL(JavaServer Pages Standard Tag Library)的一部分,主要用于循环处理集合、数组等数据结构。相...
这个例子中,`<c:forEach>`标签从1迭代到10,每次迭代将当前值`i`输出并换行。 `<c:out>`标签用于安全地显示数据,如下: ```jsp <c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>...
- **<c:forEach>**:用于循环遍历集合或数组。 - **<c:forTokens>**:用于按指定分隔符遍历字符串中的元素。 - **<c:import>**:用于在JSP页面中包含其他资源。 - **<c:url>**:用于生成URL。 - **<c:redirect>**:...
- `<c:forEach>`用于遍历集合,如数组、列表、Map等。例如: ```jsp <c:forEach items="${users}" var="user"> 姓名:${user.name}, 年龄:${user.age} </c:forEach> ``` 这会遍历`users`集合,并输出每个...
<c:forEach items="${users}" var="user" begin="0" end="2"> ${user.name} </c:forEach> ``` 8. `<c:forTokens>` 此标签用于按分隔符拆分字符串,并迭代结果。`items`是待拆分的字符串,`delims`是分隔符,`...
例如,遍历数组或列表,`<c:forEach items="${users}" var="user">...</c:forEach>`。 5. `<c:import>`:动态引入资源,如HTML、JSP或Servlet。 6. `<c:redirect>`:用于页面重定向。 EL表达式还支持运算符,包括点...
C标签库是JSTL的一部分,它包含了类似于Java语言的循环和条件语句的标签,如`<c:forEach>`、`<c:if>`、`<c:choose>`等。这些标签使得JSP开发者能够更清晰地组织代码,而不是直接在页面上写Java脚本。例如,`<c:...
在给定的示例中,`<c:forEach items="${map}" var="mymap">`遍历`map`集合,每次迭代都将当前元素赋值给`mymap`变量。 4. **`<c:forTokens>`**:将字符串按指定分隔符拆分成多个部分,然后依次处理。例如,`<c:...
### `<c:forEach>`标签详解 `<c:forEach>`标签是最常用的JSTL标签之一,用于遍历集合、数组或迭代指定次数。 #### 语法说明 1. **迭代集合**: ```html <c:forEach items="collection" var="varName" ...
### `c:forEach`标签详解 `<c:forEach>`标签是JSTL中最强大的标签之一,它允许开发者在JSP页面中执行循环操作。其基本语法如下: ```xml <c:forEach items="${collection}" var="item" begin="start" end="finish...
- **功能描述**:`<c:forEach>`标签用于循环遍历集合、数组等数据结构,并且可以设置循环的次数。这对于在JSP页面中处理列表、数组等数据非常有用。 - **语法格式**: ```xml <c:forEach items="collection" var=...
- `<c:forEach>`:循环遍历集合。 - `<c:remove>`:删除一个变量。 - `<c:url>`和`<c:param>`:构建URL并添加参数。 2. **JSTL XML标签库**则用于处理XML文档,如解析、转换和输出XML数据。主要标签有: - `<x:...
#### 三、`<c:forEach>` 标签详解 `<c:forEach>` 标签的语法如下: 1. **在 Collection 中迭代**: ```jsp <c:forEach var="varName" items="collection" [varStatus="varStatusName"] [begin="begin"] [end=...
本文将深入探讨JSTL的核心标签库(core tag library),主要包括`<c:set>`、`<c:remove>`、`<c:catch>`、`<c:if>`、`<c:choose>`以及`<c:forEach>`等标签的使用。 1. `<c:set>`标签: `<c:set>`用于设置变量的值,...
本文将详细介绍JSTL中的核心标签:<c:if>、<c:choose>、<c:forEach>、<c:forTokens>、<c:catch>、<c:remove>、<c:set>、<c:import>、<c:redirect>、<c:url>以及与之相关的<fmt>标签库。 #### 1. <c:if> <c:if>标签...
- **<c:forEach>**:循环遍历标签,可以遍历集合、数组或指定次数。 - **<c:set>**:设置变量值的标签。 - **<c:out>**:输出变量值的标签,可以指定默认值及转义字符。 #### 五、表达式语言(EL) - **基础语法**...
### `<c:forEach>` 标签详解 `<c:forEach>` 是JSTL中最常用的迭代标签之一,用于遍历集合或数组等数据结构,并在每次迭代过程中执行相应的操作。该标签支持多种类型的对象,包括但不限于 `Collection`, `Map`, `...
#### 二、JSTL循环标签——`<c:forEach>`详解 ##### 2.1 `<c:forEach>`标签基本用法 `<c:forEach>`是JSTL中最常用的循环标签之一,用于对集合或数组进行迭代操作。其基本语法结构如下: ```jsp <c:forEach items=...
`<c:forEach items="items" var="item" varStatus="status">...</c:forEach>` 其中,`items`是待遍历的对象,`var`定义了当前遍历项的变量名,`varStatus`定义了一个状态变量,包含了循环的信息,如索引、总数等。...
以上只是JSTL核心标签库的一部分功能,实际应用中还有更多标签,如循环标签`<c:forEach>`、迭代标签`<c:forTokens>`等。这些标签在处理数据、控制流程等方面提供了极大的便利,使得JSP页面更加简洁、易读,也更符合...