我刚刚被介绍给empty
操作员(以及一般的 EL),似乎我缺少一些非常基本的东西。根据我了解到的情况,如果为 null,或者为空字符串、数组、映射或集合,则${empty obj}
返回trueobj
那么,为什么会出现以下代码:
<html>
<head><title>EL Practice</title></head>
<body>
<% String x = "hello"; %>
<%= x %>
<br>${empty x}
</body>
</html>
产生以下输出?
hello
true
在这种情况下,x 不是非空/空吗?
谢谢,杰夫
编辑: 我想我可能已经回答了我自己的问题,尽管我希望得到一些澄清。当代码被改变时(见第 5 行)如下:
<html>
<head><title>EL Practice</title></head>
<body>
<% String x = "hello"; %>
<% pageContext.setAttribute("x", "hello"); %>
<%= x %>
<br>${empty x}
</body>
</html>
输出是:
hello
false
${empty obj}
唯一适用于 obj 的集合作为属性吗?