"$ {foo.bar}"和"#{foo.bar}"之间的区别是什么?

Mar*_*cus 4 java jsp jstl el

我可以使用表达式语言(EL)在.jsp文件中使用Java Beans中的对象.因此,我可以输入$ {foo.bar}来获取我的价值.但我也可以使用#{foo.bar}.

任何人都可以解释这些差异或提供有意义的信息链接吗?

McD*_*ell 17

这在JSP 2.1规范中有所涉及.

在Java EE,#{expr}用于延迟评估${expr}即时评价.延迟表达式(#{expr})表达式只能与接受它们的标记属性一起使用.这是一个Java EE约定,但其他域可能强加其自己的含义(例如,如果您想在自己的模板中使用EL).


ska*_*man 6

#{foo.bar}语法来自JSF表达式语言.一些明亮的火花认为使用与JSP EL不同的语法(即${foo.bar})是个好主意.我认为一些JSP容器可以容忍这个cockup,让你使用其中任何一个.