java web开发中 varStatues="status" 中参数status是啥作用和意思呢?这个参数的设置有啥要求呢? 5

 我来答
11份额哇啊额
2018-04-04 · TA获得超过1万个赞
知道小有建树答主
回答量:132
采纳率:81%
帮助的人:34.7万
展开全部

java web开发中 varStatues="status" 中参数status的含义:

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

<c:forEach varStatus="status">中 varStatus的属性简介:

       我们常会用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" onchange="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="#" onclick="getModelDetail(${model.modelID});"><img src="<%=request.getContextPath()%>/images/edit.gif" alt="编辑"/></a>
<a href="#" onclick="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 类的实例。



邗启3V
推荐于2017-11-25 · TA获得超过7271个赞
知道大有可为答主
回答量:1413
采纳率:100%
帮助的人:1394万
展开全部
估计不错的话,你说的这个是<c:forEach>jstl循环标签的一个属性,varStatus属性
就拿varStatus=“status”来说,事实上定义了一个status名的对象作为varStatus的绑定值
该绑定值也就是status封装了当前遍历的状态,比如,可以从该对象上查看是遍历到了第几个元素:${status.count}
该对象上还有其他属性我不太记得了,你可以查查看
希望你说的是这个,因为你给的信息太少了
谢谢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海纳百川巨龙潮g
2012-05-30 · TA获得超过171个赞
知道答主
回答量:55
采纳率:0%
帮助的人:45.8万
展开全部
变量状态参数,该属性有5个常用值
count 表示当前遍历集合的元素个数
index 表示当前遍历到集合的第几个元素
current 表示当前的集合元素
first 表示集合的第一个元素
last 表示集合的最后一个元素
我们最常用的就是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>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c1a9797
2018-01-31
知道答主
回答量:2
采纳率:100%
帮助的人:1754
展开全部
c:forEach varStatus属性
current当前这次迭代的(集合中的)项
index当前这次迭代从 0 开始的迭代索引
count当前这次迭代从 1 开始的迭代计数
first用来表明当前这轮迭代是否为第一次迭代的标志
last用来表明当前这轮迭代是否为最后一次迭代的标志
begin属性值
end属性值
step属性值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式