Comment utiliser l'option if-else dans JSTL

Existe-t-il une balise if-else disponible dans JSTL?

299
demandé sur andronikus 2011-01-03 22:02:54

5 réponses

Oui, mais c'est maladroit comme l'enfer, par exemple

<c:choose>
  <c:when test="${condition1}">
    ...
  </c:when>
  <c:when test="${condition2}">
    ...
  </c:when>
  <c:otherwise>
    ...
  </c:otherwise>
</c:choose>
481
répondu skaffman 2011-01-03 19:05:26

Pour de simples si-sinon vous pouvez utiliser l'opérateur ternaire comme ceci

<c:set value="34" var="num"/>
<c:out value="${num % 2 eq 0 ? 'even': 'odd'}"/>
95
répondu laksys 2012-11-07 04:11:53

Il n'y a pas si-sinon, juste si.

<c:if test="${user.age ge 40}">
 You are over the hill.
</c:if>

Vous pouvez éventuellement utiliser choose-when:

<c:choose>
  <c:when test="${a boolean expr}">
    do something
  </c:when>
  <c:when test="${another boolean expr}">
    do something else
  </c:when>
  <c:otherwise>
    do this when nothing else is true
  </c:otherwise>
</c:choose>
42
répondu Menuka Ishan 2016-05-19 06:26:31

J'ai simplement utilisé deux balises if, pensé que j'ajouterais une réponse au cas où elle serait utile à quelqu'un d'autre:

<c:if test="${condition}">
  ...
</c:if>
<c:if test="${!condition}">
  ...
</c:if>

Bien que techniquement pas un if-else en soi, le comportement est le même et évite l'approche maladroite de l'utilisation de la balise choose, donc en fonction de la complexité de votre exigence, cela pourrait être préférable.

19
répondu jonk 2016-02-19 19:16:34

, Vous devez utiliser ce code:

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

Et

<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>
1
répondu ankit 2017-10-27 13:18:23