webentwicklung-frage-antwort-db.com.de

Verwendung der if-else-Option in JSTL

Gibt es ein if-else-Tag in JSTL?

315
Srinivasan

Ja, aber es ist höllisch klobig, z.

<c:choose>
  <c:when test="${condition1}">
    ...
  </c:when>
  <c:when test="${condition2}">
    ...
  </c:when>
  <c:otherwise>
    ...
  </c:otherwise>
</c:choose>
506
skaffman

Für ein einfaches Wenn-Sonst können Sie einen solchen ternären Operator verwenden

<c:set value="34" var="num"/>
<c:out value="${num % 2 eq 0 ? 'even': 'odd'}"/>
101
laksys

Es gibt kein Wenn-Sonst, nur wenn.

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

Optional können Sie wählen, wann:

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

Ich habe es geschafft, einfach zwei if-Tags zu verwenden, und dachte, ich würde eine Antwort hinzufügen, falls es jemand anderem von Nutzen ist:

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

obwohl es sich technisch gesehen nicht um einen _if-else_ handelt, ist das Verhalten dasselbe und vermeidet die umständliche Verwendung des choose -Tags. Je nachdem, wie komplex Ihre Anforderung ist, ist dies möglicherweise vorzuziehen.

23
jonk

sie müssen diesen Code verwenden:

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

und

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