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表达式

我们常使用<c:forEach>标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行、偶数行差异;最后一行特殊处理等等。varStatus属性常用参数如下:

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>

这样,当<c:if>的条件成立的时候就可以退出<c:forEach>标签的循环了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值