c:forEach怎么退出循环

tingfengbus 2009-10-29 10:13:03
<c:forEach items="#{varpersonList.partyContactMethods }" var="partyContactMethod" >
<c:if test="#{partyContactMethod.prefContactInd == 'P'}">
<c:out value="#{partyContactMethod.contactMethod.contactNum }"></c:out>
</c:if>
</c:forEach>

我想在c:if的条件成立后,退出c:forEach循环,用break肯定是不行的,不知道有什么好的办法
...全文
7178 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
曹咚咚 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]

HTML code

<c:set var="isMatch" scope="page">0</c:set><!-- 匹配标记,初始化时置为0 -->
<c:forEach items="#{varpersonList.partyContactMethods }" var="partyContactMethod" >
<c:if test="#{partyContactMethod.pre……
[/Quote]

有个地方写错了,应该是:

<c:set var="isMatch" scope="page">0</c:set><!-- 匹配标记,初始化时置为0 -->
<c:forEach items="#{varpersonList.partyContactMethods }" var="partyContactMethod" >
<c:if test="#{partyContactMethod.prefContactInd eq 'P' && isMatch ne 1">
<c:set var="isMatch" scope="page">1</c:set><!-- 匹配的时候,先把标记变量置为1再输出 -->
<c:out value="#{partyContactMethod.contactMethod.contactNum }"></c:out>
</c:if>
</c:forEach>
曹咚咚 2012-07-26
  • 打赏
  • 举报
回复

<c:set var="isMatch" scope="page">0</c:set><!-- 匹配标记,初始化时置为0 -->
<c:forEach items="#{varpersonList.partyContactMethods }" var="partyContactMethod" >
<c:if test="#{partyContactMethod.prefContactInd eq 'P'} && isMatch ne 1">
<c:set var="isMatch" scope="page">1</c:set><!-- 匹配的时候,先把标记变量置为1再输出 -->
<c:out value="#{partyContactMethod.contactMethod.contactNum }"></c:out>
</c:if>
</c:forEach>

给楼主一个折中的方法吧,虽然不能跳出循环,但可以达到后续不在输出的目的。如果有更复杂的控制,可以设置多个变量进行相应的改动。
虽然是很久以前的帖子了,但还是回复一下吧,希望对以后见到帖子的人有个帮助。
jilin_erbao 2011-04-19
  • 打赏
  • 举报
回复
<c:forEach var="item1" items="${item.list}" end="${i}">
<c:if test="${empty space||space eq item1.positionLevel}">
<c:set var="i" value="0"></c:set>
</c:if>
</c:forEach>
这个是不是你想要的结果
这个东西我弄了半天
兔兔的保姆 2010-08-04
  • 打赏
  • 举报
回复
你c:if里面的判断包含输出集合信息
不符合要求的信息就不会输出了!
SandyCool 2009-11-20
  • 打赏
  • 举报
回复
//可以把不输出内容当做退出呀
blackisforever 2009-11-05
  • 打赏
  • 举报
回复
用forEach的 end属性,里面写结束的条件,可以是个局部变量等于某个特定的值,在执行结束的if语句中赋值,当end中的表达式里的变量等于if语句中设的值时,就可以结束。end就是用来设置结束条件的!
xiaohao34959 2009-11-05
  • 打赏
  • 举报
回复
里面有个 begin end的属性
sangshusen_1988 2009-10-29
  • 打赏
  • 举报
回复
毕竟是标签,不可能实现特别复杂的逻辑
bayougeng 2009-10-29
  • 打赏
  • 举报
回复
如果一定要这么用的话,你试试能不能在你想跳出的时候,将集合里剩余的元素删除掉。或者直接让集合=null。试试,也许可行呢?
tingfengbus 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bayougeng 的回复:]
如果是那样,你不应该选择forEach。
[/Quote]有什么好的解决办法吗
bayougeng 2009-10-29
  • 打赏
  • 举报
回复
如果是那样,你不应该选择forEach。
sunnylyy 2009-10-29
  • 打赏
  • 举报
回复
c:forEach里实现break的效果?没办法,实现不了
tingfengbus 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 casablancaliu 的回复:]
可以跟C:CHOOSE 标签结合使用 这样应该能满足你的需求L:
HTML code<c:forEachvar="person" items="${people.people}" varStatus="rowCounter"><c:choose><c:whentest="${rowCounter.count % 2 == 0}"><c:setvar="rowStyle" scope="page" value="odd"/></c:when><c:otherwise><c:setvar="rowStyle" scope="page" value="even"/></c:otherwise></c:choose><trclass="${rowStyle}"><td>${person.name}</td><td>${person.age}</td><td>${person.height}</td></tr></c:forEach>
[/Quote]但是我是想判断条件一成立,就退出foreach循环,你这样用chooese不是一样循环完结束
casablancaliu 2009-10-29
  • 打赏
  • 举报
回复
可以跟C:CHOOSE 标签结合使用 这样应该能满足你的需求L:

<c:forEach var="person" items="${people.people}" varStatus="rowCounter">
<c:choose>
<c:when test="${rowCounter.count % 2 == 0}">
<c:set var="rowStyle" scope="page" value="odd"/>
</c:when>
<c:otherwise>
<c:set var="rowStyle" scope="page" value="even"/>
</c:otherwise>
</c:choose>
<tr class="${rowStyle}">
<td>${person.name}</td>
<td>${person.age}</td>
<td>${person.height}</td>
</tr>
</c:forEach>
tingfengbus 2009-10-29
  • 打赏
  • 举报
回复
我想让它判断条件成立后,就退出循环,就不让它循环完
invoked 2009-10-29
  • 打赏
  • 举报
回复
循环完了就退出了
yulu0214 2009-10-29
  • 打赏
  • 举报
回复
页面应该只用来显示,最好再后台就把数据分类组织好
tingfengbus 2009-10-29
  • 打赏
  • 举报
回复
呵呵 我找了很多网站包括国外的网站 这个问题经常有人提出 但是没找到好的解决方案
hfliyy 2009-10-29
  • 打赏
  • 举报
回复
能提出的问题就有解决的办法,会有人知道的。
夜雨~听风 2009-10-29
  • 打赏
  • 举报
回复
这位哥,你的想法是不错,但是这是一个标签,人家都封装好了给你使用,若你想中断跳出就得问问标签的编程人员那代码怎么写的了。。。。所以用标签不可能实现这种效果的,我看你还是用java代码片吧。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧