Ответ 1
-
Июнь 2002: JSTL 1.0 был введен с EL в первый раз. Это те
${}
вещи, которые работают только в тегах JSTL. Он предназначен для вызова методов Javabeanget
. -
Ноябрь 2003: был введен JSP 2.0, и EL был перемещен из JSTL 1.0 в JSP 2.0 в пакет
javax.servlet.jsp.el
, и он стал стандарт EL как часть стандарта J2EE 1.4. JSTL 1.1 был отправлен без EL. Теперь${}
работает вне тегов JSTL в тексте шаблона JSP. -
Март 2004: JSF 1.0 был представлен с отложенным EL в пакете
javax.faces.el
. Именно те#{}
вещи работают только в тегах JSF. Разница со стандартным JSP EL${}
заключается в том, что он не только выполняетget
, но также может выполнятьset
. Это было обязательным для автоматизированного создания bean и установки значений входных компонентов. Стандартный EL${}
также работает в выходных тегах JSF, но они не будут автоматически создавать beans, если они еще не существуют в области видимости, и они не будут устанавливать входные значения. -
Май 2005: Пока готовится новый JSP 2.1, который должен быть выпущен в мае 2006 года, отложенный EL
#{}
был извлечен из JSF и объединен со стандартным EL${}
вjavax.el
. В этот момент он стал унифицированным EL, который был представлен с JSF 1.2 и стал более поздним компонентом стандарта JSP 2.1 и Java EE 5. Теперь#{}
можно также использовать в тегах JSP для значенийget
, но не до значенийset
.${}
теперь может в JSP автоматически создавать управляемые значения beans, но неset
. -
Ноябрь 2006: Facelets был представлен как преемник JSP. Это разрешало использовать
#{}
в тексте шаблона вне тегов JSF в качестве замены для<h:outputText>
без каких-либо атрибутов. Он также рассматривает${}
как#{}
, поэтому они оба ведут себя одинаково в Facelets. -
Декабрь 2009: EL был извлечен из спецификации JSP и стал автономной спецификацией, которая будет поддерживаться независимо от JSP, первая версия - EL 2.2 (JSR-245), аналогичная JSP 2.2. Основной новой функцией является вызов параметризованных методов вместо вызова Javabean getters/setters внутри синтаксиса
#{}
, например.#{bean.method(argument)}
. Кроме того, Facelets стала частью стандарта Java EE 6. -
Июнь 2013: был введен EL 3.0, который поставляется с автономным процессором EL, что позволяет использовать его в простом приложении Java SE. Другими основными новыми функциями являются новый оператор конкатенации строк
+=
, новые операции для объектов коллекции, включая потоки и выражения Lambda->
(даже на Java 6/7!) И импортирование констант в область EL.