jstl的forEach详解(转)
<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>
jstl的forEach详解(转)的更多相关文章
- <c:forEach>详解
<c:forEach>详解 <c:forEach>标签的语法定义如下所示. <c:forEach var="name" items="exp ...
- 【jsp】JSTL标签大全详解
一.JSTL标签介绍 1.什么是JSTL? JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是 ...
- myBatis foreach详解【转】
MyBatis的foreach语句详解 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,ope ...
- jstl标签: c:Foreach详解
为循环控制,它可以将集合(Collection)中的成员循序浏览一遍.运作方式为当条件符合时,就会持续重复执行的本体内容. 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍.运作方 ...
- 怎么在官网下载jstl【配图详解】
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个非常优秀的开源JSP标签库,如果要在系统使用JSTL标签,则必须将jstl.jar和 standard.jar文件放 ...
- JSTL标签用法 详解
在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...
- <c:forEach> 详解
<c:forEach>标签用于通用数据循环,它有以下属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 开始条件 否 0 end 结束条件 否 集合中的 ...
- JSTL标签用法 详解(转)
JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...
- JSTL 标签大全详解
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53311722 冷血之心的博客) 一.JSTL标签介绍 1.什么是 ...
随机推荐
- Django - session 会话跟踪技术
1.session简介 |session 英 /'seʃ(ə)n/ 美 /'sɛʃən/ 基于cookies开发,将值存到服务端 写session 读session Session是服务器端技术,利用 ...
- js弹出div层,弹出层页面底部出现UL出现一条线问题
整个弹出div层,列表满一页时:底部会出现一条横线 原因:ul固定写在页面中了 解决方法: 将ul代码与li列表一样写在js中,如下 var newhtml = '<ul class=" ...
- LeetCode OJ 60. Permutation Sequence
题目 The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of th ...
- editable : false与 readonly 的区别
editable : false 不能输入 readonly:不可操作,只能看
- javascript:getElementsByName td name
问题: 今天写动态生成HTML表格的时候需要用到统计td内的数据,在生成的时候设置了td的name属性,但是document.getElementsByName("tdname&quo ...
- unity 数学公式
Mathf.Abs绝对值 计算并返回指定参数 f 绝对值. Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f ...
- python小数据池概念以及具体范围
= 赋值符号: == 比较值是否相等: is 比较,比较的是内存地址 ID(内容) 数字,字符串的小数据池 小数据池现象产生的原因,作用: 为了节省内存空间. &l ...
- tf.pad(one_hot_encoding, [[0, 0], [1, 0]], mode='CONSTANT')
tf.pad(one_hot_encoding, [[0, 0], [1, 0]], mode='CONSTANT') tf.pad 是扩展的意思,其中[0, 0], [1, 0] 分别代表的是[上, ...
- 我在eclipse输出的第一个hello world!
下学期就要学习JAVA 语言,我现在对它好像还真的是一无所知.记得两次在帮学长做测评的时候,他们都说要装上eclipse.然后从放假我就忙着下载,安装,但是由于官网都是英文,似乎一直在出差错.询问了学 ...
- node 跨域
app.post('/api/list',function(req, res){ let reqOrigin = req.headers.origin; // request响应头的origin属性 ...