我可以使用表达式语言(EL)在.jsp文件中使用Java Bean中的对象。因此,我可以输入$ {foo.bar}来获取我的价值。但我也可以使用#{foo.bar}。
有人可以解释这些差异或提供有意义的信息链接吗?
答案 0 :(得分:17)
在Java EE中,#{expr}
用于延迟评估,${expr}
用于立即评估。延迟表达式(#{expr}
)表达式只能与接受它们的标记属性一起使用。这是一个Java EE约定,但其他域可以强加其自己的含义(例如,如果您想要use EL in your own templates)。
答案 1 :(得分:6)
#{foo.bar}
语法来自JSF表达式语言。一些明亮的火花认为使用与JSP EL不同的语法(即${foo.bar}
)是个好主意。我认为一些JSP容器可以容忍这个cockup,让你使用其中任何一个。