我可以通过使用表达式语言 (EL) 在 .jsp 文件中使用来自我的 Java Bean 的对象。因此我可以通过输入 ${foo.bar} 来获得我的价值。但我也可以使用#{foo.bar}。
任何人都可以解释差异或提供有意义信息的链接吗?
这包含在JSP 2.1 规范中。
在 Java EE 中,#{expr}
用于延迟评估和立即${expr}
评估。延迟表达式 ( ) 表达式只能与接受它们的标记属性一起使用。这是 Java EE 约定,但其他域可以强加它们自己的含义(例如,如果您想在自己的模板中使用 EL)。#{expr}
#{foo.bar}
语法来自 JSF 表达式语言。一些聪明的火花认为使用与 JSP EL 不同的语法(即${foo.bar}
)是个好主意。我认为一些 JSP 容器可以容忍这种错误,并让您使用其中任何一个。