'JSTL continue, break inside foreach
I want to insert "continue" inside foreach in JSTL. Please let me know if there is a way to achieve this.
<c:forEach
var="List"
items="${requestScope.DetailList}"
varStatus="counter"
begin="0">
<c:if test="${List.someType == 'aaa' || 'AAA'}">
<<<continue>>>
</c:if>
I want to insert the "continue" inside the if condition.
Solution 1:[1]
There's no such thing. Just do the inverse for the content you actually want to display. So don't do
<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>
but rather do
<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>
or
<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>
Please note that I fixed an EL syntax error in your code as well.
Solution 2:[2]
I solved it using Set at the end of my executable code and inside of the loop
<c:set var="continueExecuting" scope="request" value="false"/>
then I used that variable to skip the execution of the code in the next iteration using
<c:if test="${continueExecuting}">
you can set it back to true at any time...
<c:set var="continueExecuting" scope="request" value="true"/>
more on this tag at: JSTL Core Tag
enjoy!
Solution 3:[3]
Or you can use EL choose statement
<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>
Solution 4:[4]
I like this idea of having the variable on the foreach, and setting it to the end of the loop to exit with a c:set ... if you structure a begin and an end for loop.
https://www.codesenior.com/en/tutorial/How-To-Break-Foreach-Loop-in-JSP
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Omak Al-Qantara |
Solution 3 | Evgenij Reznik |
Solution 4 | Greg |