【问题标题】:Whats the difference between JSP implicit object and EL expression implicit object?JSP隐式对象和EL表达式隐式对象有什么区别?
【发布时间】:2011-05-12 03:44:12
【问题描述】:

我已经开始阅读 JSP。我遇到了JSP隐式对象,例如sessionapplication等。阅读EL表达式后,我知道EL表达式也有隐式对象。

我的问题是这些隐式对象有什么区别?

尽管它们在语义上是相同的,但为什么它们会创建 EL 并使事情变得有点困难?

如有错误请指正

【问题讨论】:

  • 抱歉没有添加这些标签;

标签: java jsp jstl el


【解决方案1】:

您获得的对象没有任何区别,只是在每种技术中访问相同对象的方式不同。例如,JSP 中的 request 将提供与 EL 中的 ${pageContext.request} 相同的对象。

在 EL 的情况下,为方便起见,可以使用其他隐式对象,例如 paramrequestScope。您仍然可以获得相同的数据,但语法会很笨拙。

您可能希望将此与 JSP 中的隐式对象与 Servlet 中“缺少”隐式对象进行比较。 JSP 隐式对象与您可以在 Servlet 中获得的对象没有什么不同,只是隐式对象使语法更清晰。例如,隐含的session 对象与您通过HttpServletRequest#getSession() 获得的对象相同。 pageContext 是一个例外,它在 Servlet 中没有等效项。

【讨论】:

  • 是的,这就是我的怀疑;即使两者产生相同的结果,那为什么他们不能不在JSP隐式对象本身中添加这些方法,而不是坚持EL呢?
  • 好吧,在我看来,一个因素是语法 - IIRC,在 EL 中调用函数没有直接的方法。这使得很难使用不是 getter 的现有函数,而且会产生笨拙的语法。
  • 此外,JSP 隐式对象旨在用于 scriptlet,而 EL 等效对象旨在用于 EL 表达式,因此针对该语法进行了“优化”。
  • this post 的前几段可能有助于阐明 EL 的工作原理和缺点。
猜你喜欢
  • 1970-01-01
  • 2014-04-30
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 2021-09-23
  • 2021-03-23
  • 2018-09-05
相关资源
最近更新 更多