一尘不染

JSP EL,JSF EL和Unified EL之间的区别

jsp

我想知道表达语言(EL)之间的详细区别。有JSP EL,JSF EL和Unified EL。

我想知道EL背后的历史以及Java EE应用程序中使用的最新EL是什么。EL是最新版本中所有视图技术的通用符号吗?


阅读 486

收藏
2020-06-08

共1个答案

一尘不染

  • 2002年6月:EL首次引入JSTL 1.0。这些${}东西仅在JSTL标签中有效。它旨在调用Javabean get方法。

  • 2003年11月:引入JSP 2.0,并将EL从javax.servlet.jsp.el封装形式的JSTL 1.0迁移到JSP 2.0,并成为J2EE 1.4标准的一部分,成为 标准EL 。JSTL 1.1出厂时没有EL。现在也${}可以在JSP模板文本中的JSTL标记之外使用。

  • 2004年3月:JSF 1.0引入了带有 延迟ELjavax.faces.el包装。那些#{}东西仅在JSF标记内起作用。与标准JSP EL的区别${}在于它不仅可以做get,而且可以做set。这对于托管bean自动创建和设置输入组件的值是必需的。标准EL也${}可以在JSF输出标签中使用,但是如果它们在作用域中尚不存在,并且它们将不会设置输入值,它们将不会自动创建bean。

  • 2005年5月:在新的JSP 2.1应2006年5月发布的还在准备,递延EL #{}从JSF提取和使用标准EL相结合${}javax.el包。那时,它成为JSF 1.2引入的 统一EL ,后来成为JSP 2.1和Java EE 5标准的一部分。#{}现在,也可以在JSP标记中将该get值用于值,但不能将其用于set值。${}现在,JSP中的can也可以自动创建托管bean,但不能自动创建set值。

  • 2006年11月:Facelets被引入为JSP的继承者。它允许#{}在JSF标签外部使用模板文本,以替代<h:outputText>没有任何属性的情况。它还对待${}#{},所以他们都表现得Facelets中一样。

  • 2009年12月:EL从JSP规范中提取出来,成为独立于JSP的独立规范,第一个版本是EL 2.2(JSR-245),类似于JSP 2.2。主要的新功能是调用参数化方法,而不是仅在#{}语法(例如)内调用Javabean getter / setter #{bean.method(argument)}。此外,Facelets成为Java EE 6标准的一部分。

  • 2013年6月:推出了带有独立EL处理器的EL 3.0,允许在纯Java SE应用程序中使用。其他主要的新功能包括新的字符串连接运算符+=,集合对象的新操作,包括流和Lambda表达式->(甚至在Java 6/7上!),以及将常量导入EL范围。

2020-06-08