次のJSTLタグを使用して、リクエストスコープの変数に値を設定できます。
<c:set var="value" scope="request" value="someValue"/>
value
設定されている変数が空かどうかを条件付きで確認し、それに応じて次のような結果を表示したいと思い<c:when>...</c:when>
ます。
<c:choose>
<c:when test="${not empty value}">
<c:out default="None" value="${value}"/>
</c:when>
<c:otherwise>
<c:out default="None" value="None"/>
</c:otherwise>
</c:choose>
次のような3項式を使用して、コードの行を減らしたい
<c:out default="None" value="${not empty value ? value : 'None'}"/>
実際の意味で評価されますが、次のような表現の順序を入れ替えると、
<c:out default="None" value="${empty value ? 'None' : value}"/>
次に、それは次のことを示す構文エラーです。
"$ {empty value?'None':value}"に無効な式が含まれています:javax.el.ELException:エラー解析:$ {empty value?'None':value}
では、なぜこれが起こるのでしょうか?
私はJSTL 1.1
ライブラリを使用しており、次のtaglibが含まれています。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>