我看到并使用了这两种表达方式,但我总是想知道这两种表达方式之间的区别
${foo.bar()}和
#{foo.bar()}在juel。
有什么线索吗?很难用谷歌搜索"$“和"#”...
发布于 2013-07-10 23:56:35
从功能上讲,${}只能执行get,而#{}可以执行get和一组值。
有关更多信息,请参阅Difference between JSP EL, JSF EL and Unified EL。
阅读JavaEE tutorial
立即计算使用${}语法的所有表达式。这些表达式只能在模板文本中使用,或者用作可以接受运行时表达式的JSP标记属性的值。..。立即求值表达式始终是只读值表达式。上面显示的表达式只能从cart bean获得总价;它不能设置总价。
延迟计算表达式采用#{expr}的形式,并且可以在使用表达式的任何技术定义的页面生命周期的其他阶段进行计算。对于JavaServer Faces技术,其控制器可以在生命周期的不同阶段计算表达式,具体取决于表达式在页面中的使用方式。
另请参阅此SO answer。
https://stackoverflow.com/questions/17575228
复制相似问题