JSTLで利用可能なif-elseタグはありますか?
はい、でも地獄のように不格好です。
<c:choose>
<c:when test="${condition1}">
...
</c:when>
<c:when test="${condition2}">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
単純なif-elseの場合は、次のような三項演算子を使用できます。
<c:set value="34" var="num"/>
<c:out value="${num % 2 eq 0 ? 'even': 'odd'}"/>
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>
私は単純に2つのifタグを使うことをやめました。
<c:if test="${condition}">
...
</c:if>
<c:if test="${!condition}">
...
</c:if>
技術的にはif-else
自体ではありませんが、動作は同じで、choose
タグを使用するというぎこちないアプローチを避けます。したがって、要件がどれほど複雑であるかによっては、これが望ましい場合があります。
あなたはこのコードを使わなければなりません:
<%@ 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>