web-dev-qa-db-ja.com

JSTLでif-elseオプションを使用する方法

JSTLで利用可能なif-elseタグはありますか?

310
Srinivasan

はい、でも地獄のように不格好です。

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

単純なif-elseの場合は、次のような三項演算子を使用できます。

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

If-elseはありません。

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

オプションで、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>
45
user1418225

私は単純に2つのifタグを使うことをやめました。

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

技術的にはif-else自体ではありませんが、動作は同じで、chooseタグを使用するというぎこちないアプローチを避けます。したがって、要件がどれほど複雑であるかによっては、これが望ましい場合があります。

23
jonk

あなたはこのコードを使わなければなりません:

<%@ taglib prefix="c" uri="http://www.springframework.org/tags/form"%>と一緒に

そして

<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