Jstl标签 双重c:forEach循环中 跳出单个循环(类似break; continue;)

今天写JSP的时候,发现要双重循环判断一个东西 用jstl标签写的很不习惯 ,甚至没有类似JAVA的continue跳出单个循环的功能,则想到能不能设置变量做一个类似continue的功能和break功能。

如下为continue

<c:forEach items="${FirstNum}" varStatus="Fstatus" var="a">
	 
	 	//重新把Continue设置为0 在外面的forEach可继续遍历
		<c:set var="Continue" value="0"/>
	
		<c:forEach items="${SecondNum}" varStatus="Sstatus" var="b" >
		
			<c:if test="${Continue=0}">
			
				//符合条件执行某操作
				<c:if test="${a.id eq b.id}" >
					
					//把Continue设置为1 直接跳出当前forEach 类似continue
					<c:set var="Continue" value="1"/> 
				</c:if>
			</c:if>
			
		</c:forEach>
	</c:forEach>

但是循环还是在循环 只是逻辑上像是"跳出循环" , 不过能抓到老鼠就是好猫。


如下为break

<c:forEach items="${FirstNum}" var="a"  end="exitID">  
     	<c:if test="${a.id == 1}">  
     		//设置end属性exitID为0,强制跳出循环(break)
         	<c:set var="exitID" value="0"></c:set>  
     	</c:if>  
 </c:forEach> 
break的话稍微参考了一下别人的写法,大致是把<c:forEach>标签里的end属性设置为0 强行停止循环,但好像只适用与单次循环,我用的是双重循环,需要跳出第二层循环继续第一层的循环,这种方法不适合双重遍历,个人觉得比较适合单个循环遍历的跳出循环。

猜你喜欢

转载自blog.csdn.net/qq_41737716/article/details/79880384
今日推荐