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」を挿入したい。
そのようなことはありません。 実際表示したいコンテンツに対して逆の操作を行うだけです。しないでください
<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構文エラーも修正したことに注意してください。
実行可能コードの最後とループ内で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
楽しい!
または、EL chooseステートメントを使用できます
<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>