gpt4 book ai didi

jsp - JSTL/EL 中的三元运算符

转载 作者:行者123 更新时间:2023-12-02 18:18:43 25 4
gpt4 key购买 nike

以下 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}" contains invalid expression(s): javax.el.ELException: Error Parsing: ${empty value?'None':value}

那么为什么会发生这种情况呢?

<小时/>

我正在使用JSTL 1.1库和以下标记库包含在内,

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

最佳答案

我在 Tomcat 5.59、JSP 2.0 和 JSTL 1.1 中测试了以下页面。它运行没有任何错误。

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<c:set var="value" scope="request" value="someValue"/>
<c:out default="None" escapeXml="true" value="${not empty value ? value : 'None'}" />
<c:out default="None" escapeXml="true" value="${empty value ? 'None' : value}" />
<c:set var="value" scope="request" value="" />
<br/>
<c:out default="None" escapeXml="true" value="${not empty value ? value : 'None'}" />
<c:out default="None" escapeXml="true" value="${empty value ? 'None' : value}" />

关于jsp - JSTL/EL 中的三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14482451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com