我想在JSTL中的foreach中插入“continue”。如果有办法实现这一点,请告诉我。
<c:forEach
var="List"
items="${requestScope.DetailList}"
varStatus="counter"
begin="0">
<c:if test="${List.someType == 'aaa' || 'AAA'}">
<<<continue>>>
</c:if>
我想在if条件中插入“continue”。
答案 0 :(得分:28)
没有这样的事情。只需对实际想要显示的内容进行反向操作即可。所以不要做
<c:forEach items="${requestScope.DetailList}" var="list">
<c:if test="${list.someType eq 'aaa' or list.someType eq 'AAA'}">
<<<continue>>>
</c:if>
<p>someType is not aaa or AAA</p>
</c:forEach>
而是做
<c:forEach items="${requestScope.DetailList}" var="list">
<c:if test="${not (list.someType eq 'aaa' or list.someType eq 'AAA')}">
<p>someType is not aaa or AAA</p>
</c:if>
</c:forEach>
或
<c:forEach items="${requestScope.DetailList}" var="list">
<c:if test="${list.someType ne 'aaa' and list.someType ne 'AAA'}">
<p>someType is not aaa or AAA</p>
</c:if>
</c:forEach>
请注意,我也修复了代码中的EL语法错误。
答案 1 :(得分:3)
我在可执行代码的末尾和循环内部使用Set解决了它
<c:set var="continueExecuting" scope="request" value="false"/>
然后我使用该变量在下一次迭代中使用
跳过代码的执行<c:if test="${continueExecuting}">
您可以随时将其设置为true ...
<c:set var="continueExecuting" scope="request" value="true"/>
有关此标记的更多信息,请访问:JSTL Core Tag
享受!
答案 2 :(得分:2)
或者您可以使用EL 选择 声明
<c:forEach
var="List"
items="${requestScope.DetailList}"
varStatus="counter"
begin="0">
<c:choose>
<c:when test="${List.someType == 'aaa' || 'AAA'}">
<!-- continue -->
</c:when>
<c:otherwise>
Do something...
</c:otherwise>
<c:choose>
</c:forEach>