JSTL核心标签库中c:forEach 的 varStatus属性
2018-01-26 11:58
344 查看
JSTL核心标签库中c:forEach 的 varStatus属性
varStatus属性 类型:String 描述:循环的状态信息,可以取值index\count\first\last\current 不可以使用EL表达式
我们常使用<c:forEach>标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行、偶数行差异;最后一行特殊处理等等。varStatus属性常用参数如下:
current:当前这次迭代的(集合中的)项
index:当前这次迭代从 0 开始的迭代计数
count:当前这次迭代从 1 开始的迭代计数
first:用来表明当前这轮迭代是否为第一次迭代的标志,返回true/false
last:用来表明当前这轮迭代是否为最后一次迭代的标志,返回true/false
示例:代码段1:
[html] view
plain copy
<span style="font-size:18px;"><span style="font-size:14px;"><!-- jstl核心标签库中的标签c:forEach -->
<c:forEach items="${list}" var="s" varStatus="abc">
<div id="div1">
${abc.current}
<ul>
<li>学号:${s.id}</li>
<li>姓名:${s.name}</li>
<li>年龄:${s.age}</li>
<li>性别:${s.sex}</li>
</ul>
</div>
</c:forEach></span>
[html] view
plain copy
<span style="font-size:18px;"></span></span>
在另一页面中设置了传递的参数list为request.setAttribute("list", students);
其中students为ArrayList<Students>类型,students中包含了5组数据,格式如下所示,id分别为1~5.
代码段2:
[html] view
plain copy
<span style="font-size:18px;"> <student id="1">
<name>李一X</name>
<sex>男</sex>
<age>20</age>
</student></span>
1)当代码段1中为${abc.current}时,显示界面为(注意最上面一行变化,后面类同):
2)当代码段1中为${abc.index}时,显示界面为(注意最上面一行变化,后面类同):
3)当代码段1中为${abc.count}时,显示界面为(注意最上面一行变化,后面类同):
4)当代码段1中为${abc.first}时,显示界面为(注意最上面一行变化,后面类同):
5)当代码段1中为${abc.last}时,显示界面为(注意最上面一行变化,后面类同):
另外可以结合<c:forEach>标签的begin、end、step属性控制输出,其分别表示:起始序号,结束序号,跳跃步伐。
如将示例代码段1改为:
[html] view
plain copy
<c:forEach items="${list}" var="s" begin='0' end='4' step='2' varStatus="abc">
<div id="div1">
${abc.count}
<ul>
<li>学号:${s.id}</li>
<li>姓名:${s.name}</li>
<li>年龄:${s.age}</li>
<li>性别:${s.sex}</li>
</ul>
</div>
</c:forEach>
结果如下:
说明:操作list集合共有5条数据,step="2"表明不是逐条循环,而是按步长为2取值。即操作集合中的第1、3、5条数据(见学号),此处不要和左上角varStatus属性(取值count)的输出混淆.
varStatus属性 类型:String 描述:循环的状态信息,可以取值index\count\first\last\current 不可以使用EL表达式
我们常使用<c:forEach>标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行、偶数行差异;最后一行特殊处理等等。varStatus属性常用参数如下:
current:当前这次迭代的(集合中的)项
index:当前这次迭代从 0 开始的迭代计数
count:当前这次迭代从 1 开始的迭代计数
first:用来表明当前这轮迭代是否为第一次迭代的标志,返回true/false
last:用来表明当前这轮迭代是否为最后一次迭代的标志,返回true/false
示例:代码段1:
[html] view
plain copy
<span style="font-size:18px;"><span style="font-size:14px;"><!-- jstl核心标签库中的标签c:forEach -->
<c:forEach items="${list}" var="s" varStatus="abc">
<div id="div1">
${abc.current}
<ul>
<li>学号:${s.id}</li>
<li>姓名:${s.name}</li>
<li>年龄:${s.age}</li>
<li>性别:${s.sex}</li>
</ul>
</div>
</c:forEach></span>
[html] view
plain copy
<span style="font-size:18px;"></span></span>
在另一页面中设置了传递的参数list为request.setAttribute("list", students);
其中students为ArrayList<Students>类型,students中包含了5组数据,格式如下所示,id分别为1~5.
代码段2:
[html] view
plain copy
<span style="font-size:18px;"> <student id="1">
<name>李一X</name>
<sex>男</sex>
<age>20</age>
</student></span>
1)当代码段1中为${abc.current}时,显示界面为(注意最上面一行变化,后面类同):
2)当代码段1中为${abc.index}时,显示界面为(注意最上面一行变化,后面类同):
3)当代码段1中为${abc.count}时,显示界面为(注意最上面一行变化,后面类同):
4)当代码段1中为${abc.first}时,显示界面为(注意最上面一行变化,后面类同):
5)当代码段1中为${abc.last}时,显示界面为(注意最上面一行变化,后面类同):
另外可以结合<c:forEach>标签的begin、end、step属性控制输出,其分别表示:起始序号,结束序号,跳跃步伐。
如将示例代码段1改为:
[html] view
plain copy
<c:forEach items="${list}" var="s" begin='0' end='4' step='2' varStatus="abc">
<div id="div1">
${abc.count}
<ul>
<li>学号:${s.id}</li>
<li>姓名:${s.name}</li>
<li>年龄:${s.age}</li>
<li>性别:${s.sex}</li>
</ul>
</div>
</c:forEach>
结果如下:
说明:操作list集合共有5条数据,step="2"表明不是逐条循环,而是按步长为2取值。即操作集合中的第1、3、5条数据(见学号),此处不要和左上角varStatus属性(取值count)的输出混淆.
相关文章推荐
- jstl标签中<c:forEach>中的varStatus属性
- JSTL中<c:forEach>标签中varStatus属性
- JSTL FOREACH标签的varStatus状态属性
- JSTL FOREACH标签的varStatus状态属性
- JSTL FOREACH标签的varStatus状态属性
- JSTL中forEach标签中varStatus属性名列表
- JSTL核心标签库---c:forEach varStatus属性
- JSTL的forEach标签中的属性具体含义
- Jstl <c:forEach varStatus="status">中 varStatus的属性简介
- [转] javaweb学习-jstl-<c:forEach>中 varStatus的属性简介
- <c:forEach> 标签的var 属性和varStatus属性的区别
- (forEach url out set catch 等)javaweb中JSTL的Core 核心标签库知识点
- <c:foreach> 标签 varStatus属性的含义
- <c:foreach> 标签 varStatus属性的含义
- JSTL中forEach标签中count和varStatus
- javaweb学习-jstl-<c:forEach>中 varStatus的属性简介
- jsp页面jstl标签c:foreach相关属性讲解
- EL表达式与JSTL标签map遍历varStatus属性下标使用
- EL表达式----JSP11个隐式对象----EL函数----JSTL核心标签if,foreach
- JSTL-core核心代码标签库中的forEach,remove, forTokens,choose,when,otherwise,redirect 标签