JSTL的嵌套foreach的跳出循环

桃扇骨 2022-03-22 03:42 475阅读 0赞

一.用赋值的思想.来判断是否符合.

  1. <select class="form-control selectpicker" data-live-search="true" id="city" name="cityId" multiple required>
  2. <option value="">主人所在地</option>
  3. <c:forEach var="city" items="${cityList}">
  4. //在需要跳出的循环外赋值,用来做判断
  5. <c:set var="isDoing" value="0"/>
  6. <c:forEach var="cityIds" items="${cityIdArr}" varStatus="num">
  7. <c:choose>
  8. <c:when test="${cityIds == city.id}">
  9. <option value="${city.id}" selected="selected">${city.name}</option>
  10. //选中了,就更改值
  11. <c:set var="isDoing" value="1"/>
  12. </c:when>
  13. <c:otherwise>
  14. <c:if test="${isDoing!='1'}">
  15. //处于最后一次迭代,也没有被选中过,就打印下拉框
  16. <c:if test="${num.last}">
  17. <option value="${city.id}">${city.name}</option>
  18. </c:if>
  19. </c:if>
  20. </c:otherwise>
  21. </c:choose>
  22. </c:forEach>
  23. </c:forEach>
  24. </select>

varStatus属性 类型:String 描述:循环的状态信息,可以取值index\count\first\last\current 不可以使用EL表达式

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

current:当前这次迭代的(集合中的)项
index:当前这次迭代从 0 开始的迭代计数
count:当前这次迭代从 1 开始的迭代计数
first:用来表明当前这轮迭代是否为第一次迭代的标志,返回true/false
last:用来表明当前这轮迭代是否为最后一次迭代的标志,返回true/false

二.这个还没自己测试,不过应该是可以的

  1. <c:forEach var="arr" items="${list}" end="exitId">
  2. <c:if test="${arr eq 'abc')}">
  3. <c:set var="exitId" value="0"></c:set>
  4. </c:if>
  5. </c:forEach>

这样,当的条件成立的时候就可以退出标签的循环了。

发表评论

表情:
评论列表 (有 0 条评论,475人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java多重嵌套循环

    在java里面,我们知道有goto这个关键字,但是实际却没有啥作用,这就让我们不像在c/c++里面能够随便让程序跳到那去执行,而break只能跳出当前的一个循环语句,如果要跳出