Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP EL:为什么not运算符对未声明的变量的计算结果为true_Java_Jsp - Fatal编程技术网

Java JSP EL:为什么not运算符对未声明的变量的计算结果为true

Java JSP EL:为什么not运算符对未声明的变量的计算结果为true,java,jsp,Java,Jsp,我有一段计算结果为true的代码: <c:choose> <c:when test="${not isAddressNotFound}"> <%-- Always evaluates to true --> </c:when> </c:choose> 但是,isAddressNotFound变量从未在代码中定义 在计算一个从未定义过的变量而不是抛出一个错误时,这是一个特性吗?如果是这样,那么

我有一段计算结果为true的代码:

<c:choose>
    <c:when test="${not isAddressNotFound}">
            <%-- Always evaluates to true -->
    </c:when>
</c:choose>

但是,
isAddressNotFound
变量从未在代码中定义


在计算一个从未定义过的变量而不是抛出一个错误时,这是一个特性吗?如果是这样,那么这样做的好处是什么?

我认为测试是否定义了一个变量的更好方法是标记

<%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>

你可以用它

<logic:present name="isAddressNotFound">
    User object exists.
</logic:present>

用户对象存在。


用户对象不存在。

为了完全实现你的目标。

EL足够聪明,可以避免这种
NullPointerException
。请尝试打印
值的
值:“${isAddressNotFound}”
,这意味着如果找到/声明了变量,则将其转换为空字符串。如果您正在寻找解决方案,请尝试使用
${notempty isAddressNotFound}
检查
null
以及空值。尝试
${isAddressNotFound!=null}
检查。阅读更多
<logic:notPresent name="isAddressNotFound">
    User object does not exists.
</logic:notPresent>