`

java中<c:forEach>的用法(转)

    博客分类:
  • JSTL
阅读更多
<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">
<tr <c:if test="${status.count%2==0}">bgcolor="#CCCCFE" </c:if> align="left">
xxx </tr>
</c:forEach>
分享到:
评论

相关推荐

    struts_jstl

    stl的配置方法:&lt;br&gt;1、将jstl.jar和standard.jar拷贝到web-inf/lib下即可(如只使用EL表达式,无需引用这两个包)&lt;br&gt;&lt;br&gt;2、在jsp页面头部引入taglib方法如下:&lt;br&gt; &lt;%@ taglib prefix="c" uri=...

    基于工作任务的Java+Web应用教程第五章任务1-5.zip

    3.使用JSTL的&lt;c:forEach&gt;标签取代Category.isp和Produetjsp中的for循环语句。 (1)参考教材完成使用JSTL的&lt;c:forEach&gt;标签取代Category.jsp的for循环语句。 (2)自已完成使用JSTL的&lt;c:forEach&gt;标签取代Productjsp中的...

    JAP编程学习100例

    12、&lt;c:forEach&gt; begin、end和step的用法 13 、 &lt;c:forEach&gt; 循环 14、&lt;c:forEach&gt; varStatus 的四种属性 15、&lt;c:forEach&gt; 的用法 16、从客户端传送数据至服务端 17、使用Unicode转义字符 18、使用朝鲜语字符集 19、...

    EL表达式 (详解)

    例如:我们要取得session中储存一个属性username的值,可以利用下列方法: session.getAttribute("username") 取得username的值, 在EL中则使用下列方法 ${sessionScope.username} 2)与输入有关的隐含对象 与...

    Spring MVC 入门实例

    53 &lt;taglib-location&gt;/WEB-INF/tld/c.tld&lt;/taglib-location&gt; 54 &lt;/taglib&gt; 55 &lt;taglib&gt; 56 &lt;taglib-uri&gt;http://java.sun.com/jsp/jstl/fmt&lt;/taglib-uri&gt; 57 &lt;taglib-location&gt;/WEB-INF/tld/fmt.tld&lt;/taglib-location...

    C-FOREACH用法

    C-FOREACH用法需要遍历的集合放到items中,然后定义一个temp为每次应用到的集合元素,然后设置起步值及叠加步数

    潍坊学院成人教育Java-Web程序设计B卷试卷及参考答案.doc

    %&gt; &lt;c:forEach items="${a}" var="i" begin="3" end="5" step="2"&gt; ${i }&nbsp; &lt;/c:forEach&gt; A. 1 2 3 4 5 6 7 8 B. 3 5 C. 4 6 D. 4 5 6 10. 下面哪个不能结束session会话________。 A. 调用HttpSession的clear()...

    springmybatis

    MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之...在 IUserOperation 接口中增加方法:public List...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    W3C组织正在研究一种名为RDF(Resource Description Framework)的metadata处理方法,可以自动交换信息,W3C宣称,使用RDF配合数字签名,将使网络中存在"真实可信"的电子商务。 六.显示 单独用XMl不能显示页面,...

    怎么break java8 stream的foreach

    我们通常需要在java stream中遍历处理里面的数据,其中foreach是最最常用的方法。 但是有时候我们并不想处理完所有的数据,或者有时候Stream可能非常的长,或者根本就是无限的。 一种方法是先filter出我们需要处理的...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    C .NULL&lt;&gt;1的返回结果为true。 D .当某一列的值全是NULL时,sum(col)的返回结果为NULL。 多选 7.关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》:ABCD A .向公司外部提供的...

    Thinking in java4(中文高清版)-java的'圣经'

    2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 2.4.1 域和方法 ...

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    slack-java-client:一个简单的Slack Java客户端,可以对Web api进行身份验证和发布

    可以在src / main / resources / example_client_secret.json中找到一个示例用法示例: SlackClient client = new SlackClient();SlackChannelHistoryResponse history = client.getHistory("C0000000");history....

    javascript forEach函数实现代码

    代码如下: function forEach(object, block, context, fn) { if (object == null) return;...= arguments.callee) { //如果目标已经实现了forEach方法,则使用它自己的forEach方法(如标准游览器的A

    总结javascript中的六种迭代器

    forEach方法接收一个函数作为参数,对数组中每个元素使用这个函数,只调用这个函数,数组本身没有任何变化 //forEach迭代器 function square(num){ [removed](num + ' ' + num*num + '&lt;br&gt;'); } var nums = [1,2,3...

    javascript中FOREACH数组方法使用示例

    Array.prototype.forEach()方法让数组的每一项都执行一次给定的函数。 — MDN 假设有这么一个场景,你拿到了这么一个数组 [  { symbol: “XFX”, price: 240.22, volume: 23432 },  { symbol: “TNZ”, price: 332...

    net学习笔记及其他代码应用

    10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m [Page] 答: int Num = this.TextBox1.Text.ToString() ; int Sum = 0 ; for (int i = 0 ; i &lt; Num + 1 ; i++) { if((i%2) == 1) { ...

    c#学习笔记.txt

    详细介绍请参阅rainbow(一个长着胡子的彩虹)翻译的&lt;&lt;展现C#&gt;&gt; ,前几章非常的有趣。 看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已,其实面向对象、中间语言什么的也...

Global site tag (gtag.js) - Google Analytics