EL空操作员 - 基础知识?

时间:2013-09-01 11:50:47

标签: java jsp el

我刚刚被介绍给empty运算符(以及一般的EL),似乎我遗漏了一些非常基本的东西。 据我所知,${empty obj}如果obj为空,则返回 true ,或者是空字符串,数组,地图或集合

为什么然后,以下代码:

<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设置为属性吗?

1 个答案:

答案 0 :(得分:0)

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

  • applicationScope
  • 饼干
  • headerValues
  • initParam
  • 的pageContext
  • PAGESCOPE
  • PARAM
  • paramValues
  • requestScope
  • sessionScope

检查here以获取有关他们的更多信息