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>
我想使用三元表达式来减少代码行,例如,
<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: Error Parsing: ${empty value?'None':value}
那么为什么会这样呢?
我正在使用该JSTL 1.1
库,并且包含以下标记库,
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>