今天遇到个关于Jstl 的<c:foreach></c:foreach>标签的使用问题,本来是想要通过jstl实现 从集合的第二个元素遍历数据,
常规的做法应该是这样,也比较易与理解,默认从下标为0 开始遍历 ,begin属性 表示遍历开始的下标位置,要从第二位开始,自然要设为 1,效果实现,代码及 效果如下图
<select class="form-control select-opt" id="a_company">
<option value="0">请选择...</option>
<c:forEach begin="1" items="${companys }" var="com">
<option>${com.comName }</option>
</c:forEach>
</select>测试数据中,一共有五个数据,从第二个元素开始遍历,OK,效果实现。此外在网上看到另外一种写法,还不是很理解
<select class="form-control select-opt" id="a_company">
<option value="0">请选择...</option>
<c:forEach begin="1" end="${companys.size() - 1 }" var="i">
<option>${companys[i].comName }</option>
</c:forEach>
</select>此段代码同样实现了 上图的效果(从第二个元素开始遍历),个人是这么理解的,
var 通常情况下声明 的是被遍历的集合,相当于取了别名,而这段代码 没有items属性存在,
所有这个var声明的是元素下标,相当于:
for(var i = 1 , 0< i < list.size() , i++){
<option>${ list [i] }.name</option>
}
小弟初入开发,如有理解不当,望各位能够指出
本文探讨了两种使用 JSTL 的 <c:forEach> 标签从集合的第二个元素开始遍历的方法。第一种直接设置 begin 属性;第二种通过指定 begin 和 end 属性,并使用索引变量 i 访问集合元素。
842

被折叠的 条评论
为什么被折叠?



