JSTL的嵌套foreach的跳出循环
一.用赋值的思想.来判断是否符合.
<select class="form-control selectpicker" data-live-search="true" id="city" name="cityId" multiple required>
<option value="">主人所在地</option>
<c:forEach var="city" items="${cityList}">
//在需要跳出的循环外赋值,用来做判断
<c:set var="isDoing" value="0"/>
<c:forEach var="cityIds" items="${cityIdArr}" varStatus="num">
<c:choose>
<c:when test="${cityIds == city.id}">
<option value="${city.id}" selected="selected">${city.name}</option>
//选中了,就更改值
<c:set var="isDoing" value="1"/>
</c:when>
<c:otherwise>
<c:if test="${isDoing!='1'}">
//处于最后一次迭代,也没有被选中过,就打印下拉框
<c:if test="${num.last}">
<option value="${city.id}">${city.name}</option>
</c:if>
</c:if>
</c:otherwise>
</c:choose>
</c:forEach>
</c:forEach>
</select>
varStatus属性 类型:String 描述:循环的状态信息,可以取值index\count\first\last\current 不可以使用EL表达式
我们常使用
current:当前这次迭代的(集合中的)项
index:当前这次迭代从 0 开始的迭代计数
count:当前这次迭代从 1 开始的迭代计数
first:用来表明当前这轮迭代是否为第一次迭代的标志,返回true/false
last:用来表明当前这轮迭代是否为最后一次迭代的标志,返回true/false
二.这个还没自己测试,不过应该是可以的
<c:forEach var="arr" items="${list}" end="exitId">
<c:if test="${arr eq 'abc')}">
<c:set var="exitId" value="0"></c:set>
</c:if>
</c:forEach>
这样,当
还没有评论,来说两句吧...