`

<c:forEach 详解

    博客分类:
  • JSTL
阅读更多

<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>

分享到:
评论
1 楼 niaoqq1 2016-07-15  
真坑爹,全是中文字符,复制全部报错!

相关推荐

    EL表达式 (详解)

    EL表达式 (详解) EL表达式 1、EL简介 1)语法结构 ${expression} 2)[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 ...

    java--c标签详解

    1.关键字:JSTL标签、&lt;c:choose&gt;、&lt;c:forEach&gt;、&lt;c:forTokens&gt;、&lt;c:if&gt;、&lt;c:import&gt;、&lt;c:otherwise&gt;、&lt;c:out&gt;、&lt;c:param&gt;、&lt;c:redirect&gt;、&lt;c:remove&gt;、&lt;c:url&gt;、&lt;c:when&gt;、&lt;c:set&gt;、&lt;c:catch&gt; 

    PHP foreach循环使用详解与实例代码

    foreach基本语法如下: FOREACH ($array_variable as $value) { [code to execute] } or FOREACH ($array_variable as $key =&gt; $value) { [code to execute] } 在这两种情况下,多次[代码执行]将被处死是等于在$ ...

    01:详解C#中的反射.pdf

    foreach (ConstructorInfo c in ci) //遍历每一个构造函数 { ParameterInfo[] ps = c.GetParameters(); //取出每个构造函数的所有参数 foreach (ParameterInfo pi in ps) //遍历并打印所该构造函数的所有参数 {...

    PHP中的函数– foreach()的用法详解

    foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。 复制代码 代码如下:foreach (array_expression as $value) ...

    C#中foreach实现原理详解

    本文主要记录我在学习C#中foreach遍历原理的心得体会。 对集合中的要素进行遍历是所有编码中经常涉及到的操作,因此大部分编程语言都把此过程写进了语法中,比如C#中的foreach。经常会看到下面的遍历代码: var ...

    Javascript数组循环遍历之forEach详解

    1.js 数组循环遍历。 数组循环变量,最先想到的就是 for(var i=0;i&lt;count&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt; New Document &lt;/TITLE&gt; &lt;META NAME="Author" CO

    详解PHP中foreach的用法和实例

    因此,在这篇文章中,我们一边讲数组,一边讲foreach。 foreach有两种语法: 第一种:遍历给定的 数组语句 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一...

    详解JavaScript中的forEach()方法的使用

    JavaScript数组的 forEach()方法调用数组中的每个元素。 语法 array.forEach(callback[, thisObject]); 下面是参数的详细信息: callback : 函数测试数组的每个元素。 thisObject : 对象作为该执行回调时使用。 ...

    重学 JS:为啥 await 不能用在 forEach 中详解

    这是重学 JS 系列的第三篇文章,写这个系列的初衷也是为了夯实... arr.forEach(async item =&gt; { const res = await fetch(item) console.log(res) }) console.log('end') } function fetch(x) { return new Pro

    js遍历详解(forEach, map, for, for…in, for…of)

    forEach es5出来的方法,这是我在react中用的最多的遍历方法之一,用法如下: models.forEach(model =&gt; app.model(model)); dva里面经常这么写。 写法很简单,经常用于通过这个数组内的数据创造新的结构,但是...

    【JavaScript源代码】JavaScript 语句之常用 for 循环详解.docx

    JavaScript 语句之常用 for 循环详解  JavaScript中循环语句不少,for、for in、for of和forEach循环,今天对比Array、Object、Set(ES6)、Map(ES6)四种数据结构循环语句支持的情况及区别。 新建四种数据类型的测试...

    JavaScript遍历数组的三种方法map、forEach与filter实例详解

    本文实例讲述了JavaScript遍历数组的三种方法map、forEach与filter。分享给大家供大家参考,具体如下: 前言 近一段时间,因为项目原因,会经常在前端对数组进行遍历、处理,JS自带的遍历方法有很多种,往往不加留意...

    C#从foreach语句中枚举元素看数组详解

    在foreach语句中使用枚举,可以迭代数组或集合中的元素,且无须知道集合中的元素的个数。如图显示了调用foreach方法的客户端和集合之间的关系。数组或集合实现带GetEnumerator()方法的IEnumerable接口。...

    vue.js 双层嵌套for遍历的方法详解, 类似php foreach()

    foreach(lists as $key){ //todo foreach($key.自定义字段 as k){ //todo } } &lt;template v-for=key&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr v-for=v&gt; &lt;td&gt;&lt;/td&gt; &lt;td xss=...

    PHP将XML转数组过程详解

    得到一个xml型的对象:复制代码 代码如下:$resp = $this-&gt;c-&gt;execute($req, $sessionKey);//获得xml对象$items=$resp-&gt;items;那么读取对象的值,就用$items-&gt;item,或者$items-&gt;item-&gt;price,如此操作很不方便,不...

    CodeIgniter:php敏捷开发框架web快速开发详解

    这篇文章是有关 CodeIgniter 的(以下简称 CI),CI 是一个达成以上目标的框架。 如果你只是要达成一个最终的结果,而把中间所有的编码细节和复杂统统丢给一个框架,CI 是你最好的朋友。 CI 有很多优点:免费,轻...

    PHP中一个有趣的preg_replace函数详解

    foreach ($_GET as $regex =&gt; $value) { preg_replace('/(' . $regex . ')/ei','strtolower("\\1")',$value); } 测试过程中发现通过浏览器的方式传入数据的时候,会将 . + 等特殊字符转换为 _ 。 这里涉及到了php...

    详解c# 切片语法糖

    昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5]) 哈哈,熟悉又陌生,玩过python的朋友对这个 [0..5] 太熟悉不过了,居然在 ...

Global site tag (gtag.js) - Google Analytics