<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> 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行<c:forEach>的本体内容。 语法 语法1:迭代一集合对象之所有成员 <c:forEach [var="varName...
◎ JSTL的基本概念、安装与配置...◎ JSTL的通用标记:<c:out>、<c:set>、<c:remove>和<c:catch>标记 ◎ 条件处理标记:<c:if>、<c:choose>、<c:when>和<c:otherwise>标记 ◎ 循环标记:<c:forEach>和<c:forTokens>标记
<c:if> <c:if>的用途就和我们一般在程序中用的if一样。 语法 语法1:没有本体内容(body) <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/> 语法2:有本体内容 ...
用于循环的 <c:forEach>?标签 用于分隔字符的 <c:forTokens>?标签? 用于包含页面的 <c:import> 用于得到 URL?地址的 <c:url>?标签? 用于页面重定向的 <c:redirect>?标签? 用于包含传递参数的?<c:param> 标签?.
inf/lib下即可(如只使用EL表达式,无需引用这两个包)<br><br>2、在jsp页面头部引入taglib方法如下:<br> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core " %><br> <%@ taglib prefix="fmt" uri=...
爱好:<c:forEach items="${paramValues.Habit}" var="habit"> ${habit} </c:forEach> 如果字符串是由逗号分隔的一组值,forEach也支持将其分割 <c:forEach items="Monday,Tuesday,Wednesday" var="week"> ${...
(1)参考教材完成使用JSTL的<c:forEach>标签取代Category.jsp的for循环语句。 (2)自已完成使用JSTL的<c:forEach>标签取代Productjsp中的for循环语句。 4.参考教材完成ShowCategoryServlet并相应修改Category.jsp. 5....
这是一个jsp+javaBean+servlet分页 主要功能 是通过 jstl标签中的 <c:forEach 中的开始 begin和末尾end、list结果集的items属性 操作整个分页。大家有兴趣看看
核心标签库 http://java.sun.com/jstl/core c <c:tagname…> 国际化标签(I18N) http://java.sun.com/jstl/fmt fmt <fmt:tagname…> SQL标签库 ...
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'queryStudent.jsp' starting page</...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ʽ</title> </head> <body> <script type=...
forward>,<jsp:param>,<jsp:setProperty>,<jsp:plugin>,<jsp:include>,<jsp:useBean>,<jsp:getProperty>)、JSP中使用数据库(JDBC常用API)、JSTL的配置步骤、核心标签库的使用、Servlet的实现、ServletAPI、...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...
5.2.1、第一种Scriptlet:<%%> 5.2.2、第二种Scriptlet:<%!%> 5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、...