340 votes

Comment utiliser l'option if-else en JSTL ?

Y a-t-il une balise if-else disponible dans JSTL ?

0 votes

Duplicata possible de if...else dans JSP ou JSTL

5voto

Daniel Kennedy Points 52

Pour une simple condition "if-else" que vous pouvez utiliser :

<c:choose>
    <c:when test="${condition}">
        Condition is true.
    </c:when>
    <c:otherwise>
        Condition is false.
    </c:otherwise>
</c:choose>

3voto

ankit Points 330

Vous devez utiliser ce code :

avec <%@ taglib prefix="c" uri="http://www.springframework.org/tags/form"%>

y

<c:select>
            <option value="RCV"
                ${records[0].getDirection() == 'RCV' ? 'selected="true"' : ''}>
                <spring:message code="dropdown.Incoming" text="dropdown.Incoming" />
            </option>
            <option value="SND"
                ${records[0].getDirection() == 'SND'? 'selected="true"' : ''}>
                <spring:message code="dropdown.Outgoing" text="dropdown.Outgoing" />
            </option>
        </c:select>

1voto

Stefan Mondelaers Points 191

Outre la nécessité d'avoir une autre condition, dans de nombreux cas, vous devrez utiliser la même condition sur plusieurs sites.

Je préfère extraire la condition dans une variable :

<c:set var="conditionVar" value="#{expression}"/>

Et après cela, vous pouvez utiliser la variable de condition autant de fois que vous en avez besoin :

...
<c:if test="#{conditionVar}">
       ...
</c:if>
<c:if test="#{!conditionVar}">
       ...
</c:if>
...
<c:if test="#{conditionVar}">
       ...
</c:if>
<c:if test="#{!conditionVar}">
       ...
</c:if>
...

L'élément c:choose est bon pour les situations plus compliquées, mais si vous avez besoin d'un if else seulement, je pense que cette approche est meilleure. Elle est efficace et présente les avantages suivants :

  • plus lisible si le nom de la variable est bien choisi
  • plus réutilisable car la condition est extraite et la variable résultante peut être réutilisée pour d'autres ifs et dans d'autres expressions. peut être réutilisée pour d'autres ifs et dans d'autres expressions. Cela décourage d'écrire la même condition (et de l'évaluer) plusieurs fois.

-1voto

Sachin Kumar Points 814

Il s'agit d'une approche bonne et efficace du point de vue de la complexité temporelle. Une fois que l'on a obtenu une condition vraie, on ne vérifie plus aucune autre condition. Dans les If multiples, il vérifiera chaque condition.

   <c:choose>
      <c:when test="${condtion1}">
        do something condtion1
      </c:when>
      <c:when test="${condtion2}">
        do something condtion2
      </c:when>
      ......
      ......
      ...... 
      .......

      <c:when test="${condtionN}">
        do something condtionn N
      </c:when>

      <c:otherwise>
        do this w
      </c:otherwise>
    </c:choose>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X