jstl <c:forEach> 介绍

varStatus是<c:forEach>jstl循环标签的一个属性,varStatus属性。就拿varStatus=“status”来说,事实上定义了一个status名的对象作为varStatus的绑定值。该绑定值也就是status封装了当前遍历的状态,比如,可以从该对象上查看是遍历到了第几个元素:${status.count}

我们常会用c标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行、偶数行差异;最后一行特殊处理等等。先就varStatus属性常用参数总结下:

${status.index}      输出行号,从0开始。${status.count}      输出行号,从1开始。${status.current}   当前这次迭代的(集合中的)项${status.first}  判断当前项是否为集合中的第一项,返回值为true或false${status.last}   判断当前项是否为集合中的最后一项,返回值为true或falsebegin、end、step分别表示:起始序号,结束序号,跳跃步伐。
如:<c:forEach begin=‘1‘ end=‘5‘ step=‘2‘ items=‘${list}‘ var=‘item‘>表示:操作list集合汇中1~5条数据,不是逐条循环,而是按每2个取值。即操作集合中的第1、3、5条数据。
下面是我从网上找的图,觉得挺好,收藏了:

c:forTokens items="12,34,56,78.89" delims="," var="dailyPrice">
    <tr>
     <td><c:out value="${dailyPrice}" /></td></tr>//以,号作为字符串分隔!变量名 delims属性可以随便加,可以有一个多或多个 作为分隔符

我们最常用的就是count和index,用来搞斑马线表格
常见的用法的是<c:forEach var="varity" items="${sessionScope.myList}" varStatus="status">
                                 <!--实现斑马线效果--> 
                                 <c:if test="${status.count%2==0}" >
                                       <tr bgcolor="lightyellow">
                                  </c:if>
                                  <c:if test="${status.count%2!=0}" >
                                       <tr>
                                  </c:if>
                                       <td>Elements</td>
                                 </tr> 
                        </c:forEach>

<c:forEach var="varity" items="${sessionScope.myList}" varStatus="status">
         ${status.first}/${status.last}
               当前:${status.current}
 </c:forEach>

时间: 2024-12-10 02:05:15

jstl <c:forEach> 介绍的相关文章

使用jstl的Foreach 和jquery的each()的index属性

最近项目中用到隔行换色问题,使用到了jstl的foreach和jquery的each进行遍历. 首先jstl技术.除了常用的items,var外,还有一个下标属性varStatus,从0开始,使用起来很是方便. <c:forEach items="${persons }" var="person" varStatus="i"> <c:if test="i%2==0"> do something <

详解JSTL的forEach标签

详解JSTL的forEach标签 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍. ? ? ?<c:forEach> 标签的语法?说明?: 语法:迭代一集合对象之所有成员 <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"

PWC6199:Generated servlet error:Only a type can be imported. org.apache.jasper.tagplugins.jstl.core.ForEach resolves to a package

<%@ import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> 去掉这条语句,就不报错了.所以问题就出在这里. 排查是import语句写错了  或者  是jar包没有引入 原文地址:https://www.cnblogs.com/Alwaysbecoding/p/9149302.html

JSP 基础之 JSTL &lt;c:forEach&gt;用法

摘录自:http://www.cnblogs.com/jokerjason/p/5740917.html JSTL所支持的迭代标签有两个,分别是<c:forEach>和<c:forTokens>.这里介绍的是<c:forEach>标签. <c:forEach>标签的作用就是迭代输出标签内部的内容.它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数. <c:forEach>标签,需要与el表达式联合使用 <c:forE

JSTL中foreach与fn表达式

在jstl中的fn标签也是我们在网页设计中经常要用到的很关键的标签,在使用的时候要先加上头 <%@ taglib uri=" http://java.sun.com/jsp/jstl/functions" prefix="fn"%>就可以使用fn标签了. 具体使用方法请参见下表: 函数 描述 fn:contains(string, substring) 如果参数string中包含参数substring,返回true fn:containsIgnoreCa

jstl的forEach使用和jstl变量实现自增

<c:forEach items="${reallyChooseSubjectList}" var="reallyChooseSubject"> <tr> <td width="20px;">(<%=i %>) </td><td>${reallyChooseSubject.name}</td> <td> <input type="hid

jstl&lt;c:forEach&gt;实现break效果

<c:forEach>是没有break这个语法的.但是我们可以通过标志位实现.客官给好评哦! <c:forEach items="${myList} var="myValue"  varStatus="status"> <c:set var="flag" value="0"></c:set> <c:if test="你的break条件">

jstl c:forEach

1 <span style="font-size:14px;"> <c:forEach var ="i" begin="1" end ="20" varStatus="status"> 2 ${i } ${status.index }<br> 3 </c:forEach> 4 </span> varStatus则定义了一个循环状态变量var: in

jstl的forEach标签

语法: 属性名 是否支持EL 属性类型 属 性 描 述 var false String 指定将当前迭代到的元素保存到page这个Web域中的属性名称 items true 任何支持的类型 将要迭代的集合对象 varStatus false String 指定将代表当前迭代状态信息的对象保存到page这个Web域中的属性名称 begin true int 如果指定items属性,就从集合中的第begin个元素开始进行迭代,begin的索引值从0开始编号:如果没有指定items属性,就从begin