博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<c:forEach varStatus="status">中 varStatus的属性简介
阅读量:4052 次
发布时间:2019-05-25

本文共 3248 字,大约阅读时间需要 10 分钟。

 我们常会用c标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行、偶数行差异;最后一行特殊处理等等。先就varStatus属性常用参数总结下:
${status.index}      输出行号,从0开始。
${status.count}      输出行号,从1开始。
${status.current}   
当前这次迭代的(集合中的)项
${status.first}  判断当前项是否为集合中的第一项,返回值为true或false
${status.last}   判断当前项是否为集合中的最后一项,返回值为true或false
begin、end、step分别表示:起始序号,结束序号,跳跃步伐。
如:<c:forEach begin='1' end='5' step='2' items='${list}' var='item'>
表示:操作list集合汇中1~5条数据,不是逐条循环,而是按每2个取值。即操作集合中的第1、3、5条数据。
下面是我从网上找的图,觉得挺好,收藏了:
 
 

c:forEach varStatus属性

current当前这次迭代的(集合中的)项

index当前这次迭代从 0 开始的迭代索引
count当前这次迭代从 1 开始的迭代计数
first用来表明当前这轮迭代是否为第一次迭代的标志
last用来表明当前这轮迭代是否为最后一次迭代的标志
begin属性值
end属性值
step属性值 

 

写个最近使用过的小例子:

<c:forEach items="${command.modelList}" var="model" varStatus="abc">

 <tr>
   <td><c:out value="${abc.count}"/></td>
   <td class="model">
      <form:checkbox path="select" value="${abc.index}"/>
     <label for="model1">${model.modelName}</label>
     <p>${model.modelDesc}</p>
   </td>
   <td>
     <form:select path = "modelList[${abc.index}].positionIdx" οnchange="selectPoss(this);">
       <option value="">请选择</option>
       <form:option value="A" label="位置A"/>
       <form:option value="B" label="位置B"/>
       <form:option value="C" label="位置C"/>
       <form:option value="D" label="位置D"/>
       <form:option value="E" label="位置E"/>
       <form:option value="F" label="位置F"/>
    </form:select>
  </td>
  <td>
    <a href="#" οnclick="getModelDetail(${model.modelID});"><img src="<%=request.getContextPath()%>/images/edit.gif" alt="编辑"/></a>
    <a href="#" οnclick="deleteModel(${model.modelID});"><img src="<%=request.getContextPath()%>/images/delete.gif" alt="删除" /></a>
  </td>
</tr>
  </c:forEach>

 

c:forEach varStatus属性

 

index当前这次迭代从 0 开始的迭代索引

count当前这次迭代从 1 开始的迭代计数
first用来表明当前这轮迭代是否为第一次迭代的标志
last用来表明当前这轮迭代是否为最后一次迭代的标志
begin属性值
end属性值
step属性值

例:

表格偶数行与奇数行颜色交替效果

<c:forEach items="${queryPromotionList}" var="vPromotion" varStatus="vstatus">
            <c:choose>
                <c:when test="${vstatus.index%2==0}">
      <tr bgcolor="#FFFFFF" height="40">
                </c:when>
                <c:otherwise>
        <tr bgcolor="#F3F3F5" height="40">
                </c:otherwise>
            </c:choose>

   <table class=table_body_bg cellspacing=1 cellpadding=1

            width="100%" align=center border=0>
             <c:forEach items="${list}" var="a" varStatus="vs">

     <c:if test="${vs.count%5==1}">

       <tr align="left" height="20">
      </c:if>             
             <td class=table_body_td width="20%"><a href="/aam/degree/advisorAnswer.do?sfid=${a.sfid }">${a.xm }(${a.sfid })</a></td>
     <c:set var="count" value="${vs.count}"/>         //${vs.count}只在<c:forEach></c:forEach>的范围内有值 外部引用需要把值传出去
     </c:forEach>    
      <c:if test="${count%5==1}">
      <td class="table_body_td" width="20%"></td>
      <td class="table_body_td" width="20%"></td>
      <td class="table_body_td" width="20%"></td>
      <td class="table_body_td" width="20%"></td>
      </tr>
      </c:if>
    
      <c:if test="${count%5==2}">
      <td class="table_body_td" width="20%"></td>
      <td class="table_body_td" width="20%"></td>
      <td class="table_body_td" width="20%"></td>    
      </tr>
      </c:if>
     
      <c:if test="${count%5==3}">
      <td class="table_body_td" width="20%"></td>
      <td class="table_body_td" width="20%"></td>
      </tr>
      </c:if>
     
      <c:if test="${count%5==4}">
      <td class="table_body_td" width="20%"></td>
      </tr>
      </c:if>

      <c:if test="${count%5==0}">

      </tr>
      </c:if>
             </table>

不论是对整数还是对集合进行迭代, <c:forEach> 剩余的属性 varStatus 所起的作用相同。和 var 属性一样, varStatus 用于创建限定了作用域的变量。不过,由 varStatus 属性命名的变量并不存储当前索引值或当前元素,而是赋予 javax.servlet.jsp.jstl.core.LoopTagStatus 类的实例。
 
 
 

转载地址:http://oqtci.baihongyu.com/

你可能感兴趣的文章
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>
最简单的使用redis自带程序实现c程序远程访问redis服务
查看>>
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>