0

我刚刚被介绍给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 的集合作为属性吗?

4

1 回答 1

0

empty运算符和所有其他 JSP 表达式语言运算符都可以访问以下 JSP 隐式对象,

  • 应用范围
  • 曲奇饼
  • 标题
  • 标头值
  • 初始化参数
  • 页面上下文
  • 页面范围
  • 参数
  • 参数值
  • 请求范围
  • 会话范围

在此处查看有关它们的更多信息

于 2013-09-02T18:13:19.837 回答