JSTL的以下標記可用於將值設置爲請求範圍中的變量。JSTL/EL中的三元運算符
<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>
我想減少的使用三元表達式像代碼行,
<c:out default="None" value="${not empty value ? value : 'None'}"/>
它被評價爲它實際上意味着但如果我互換等的表達的順序,
<c:out default="None" value="${empty value ? 'None' : value}"/>
那麼它是一個語法錯誤指示,
「$ {空值 '無':值}」 包含無效的表達(S): javax.el.ELException:錯誤解析:$ {空值 '無':值}
那麼,爲什麼這是否發生?
我使用的JSTL 1.1
庫和被包括在下面的taglib,
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
我複製並粘貼了你的代碼,它對我來說沒有錯誤。 – rickz
@rickz - 它**可能會成爲我使用的JSTL庫版本的問題。你在使用哪個庫? – Tiny
我正在使用1.2。 – rickz