web-dev-qa-db-fra.com

JSTL continue, fait irruption à l'intérieur de foreach

Je veux insérer "continuer" à l'intérieur de foreach dans JSTL. Veuillez me faire savoir s'il existe un moyen d'y parvenir.

<c:forEach 
  var="List"
  items="${requestScope.DetailList}" 
  varStatus="counter"
  begin="0">

  <c:if test="${List.someType == 'aaa' || 'AAA'}">
    <<<continue>>>
  </c:if>

Je veux insérer le "continuer" à l'intérieur de la condition if.

21
Nazneen

Il n'y a rien comme ça. Faites juste l'inverse pour le contenu que vous en fait voulez afficher. Alors ne fais pas

<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>

mais plutôt

<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>

ou

<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>

Veuillez noter que j'ai également corrigé une erreur de syntaxe EL dans votre code.

28
BalusC

Je l'ai résolu en utilisant Set à la fin de mon code exécutable et à l'intérieur de la boucle

<c:set var="continueExecuting" scope="request" value="false"/>

puis j'ai utilisé cette variable pour ignorer l'exécution du code dans la prochaine itération en utilisant

<c:if test="${continueExecuting}">

vous pouvez la rétablir à tout moment ...

<c:set var="continueExecuting" scope="request" value="true"/>

plus sur cette balise à: JSTL Core Tag

prendre plaisir!

3
Omak Al-Qantara

Ou vous pouvez utiliser EL ( choisissez instruction

<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>
2
Tom Novosad