我想知道表达式语言(EL)之间的详细区别。有JSP EL、JSF EL和Unified EL。
我想知道EL背后的历史,以及Java应用程序中使用的最新EL是什么。在最新版本中,它是所有视图技术的通用EL吗?
发布于 2011-01-27 12:56:46
${}东西。javax.servlet.jsp.el包中从JSTL1.0移植到JSP2.0,并成为标准EL的一部分,作为J2EE 1.4标准的一部分。JSTL 1.1发布时没有使用EL。#{}标签内部工作的JSF东西。与标准JSP ${}的不同之处在于,它不仅可以执行get,还可以执行set。这对于自动创建托管bean和设置输入组件的值是必需的。#{},并将其与标准的EL ${}组合在javax.el包中。在这一点上,它成为JSF1.2引入的统一的EL,后来成为JSP2.1和JavaEE5标准的一部分。#{}现在还可以在JSP标记中用于get值,但不能用于set值。${}现在还可以自动创建托管bean,但不能自动创建Facelet值。set的继任者引入的。它允许在JSF标记之外的模板文本中使用#{},作为没有任何属性的<h:outputText>的替代品。它还将${}视为#{},因此它们在JSP2009中的行为是相同的: EL是从Facelets.${}维护的独立规范,第一个版本是EL 2.2 (JSR-245),类似于JSP2.2。主要的新功能是调用参数化的方法,而不是只调用#{}语法中的Javabean getter/setter,例如#{bean.method(argument)}。此外,Facelets成为了JavaEE6Facele2013的一部分:引入了EL 3.0,它带有独立的EL处理器,允许在普通的Java应用程序中使用。其他主要的新特性是新的字符串连接操作符+=,集合对象的新操作,包括流和Lambda表达式-> (甚至在Java6/7上!)并将常量导入EL作用域。发布于 2012-05-23 23:07:52
补充BalusC的答案...
EL最初是由艺术技术集团的内森·艾布拉姆森于2001年构思并实施的。当时,这种实现被称为最简单可能的表达式语言(SPEL)。该实现后来被包含在JSTL1.0中。内森是JSR-052 Expert Group的一部分,并在JSTL specification中被认为是表达式语言背后的驱动力。
“特别提到Nathan Abramson,因为他是JSTL中引入的表达式语言背后的推动力”
https://stackoverflow.com/questions/4812755
复制相似问题