Різниця між JSP EL, JSF EL та Unified EL [закрито]


122

Мені хотілося б знати детальну різницю між мовами вираження (EL). Є JSP EL, JSF EL і Unified EL.

Я хотів би дізнатися історію, що стоїть за EL та що таке останнє EL, яке використовується в додатках Java EE Чи загальна EL для всіх технологій перегляду в останніх версіях?

Відповіді:


221
  • Червень 2002: JSTL 1.0 вперше був представлений з EL. Це було ${}те, що працює лише в тегах JSTL. Він призначений для виклику Javabean getметодів.

  • Листопад 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. Це було обов'язковим для керованого автоматичного створення бобів та встановлення значень вхідних компонентів. Стандартний EL також ${}працює у вихідних тегах JSF, але вони не створюватимуть автоматичне створення бобів, якщо вони ще не існують в області застосування, і вони не встановлять вхідні значення.

  • Травень 2005 року: Під час підготовки до нового JSP 2.1, який повинен бути випущений у травні 2006 року, відкладений EL #{}був вилучений із JSF та об'єднаний зі стандартною EL ${}у javax.elпакеті. З цього моменту він став уніфікованим EL, який був представлений з JSF 1.2 і згодом став частиною стандарту JSP 2.1 та Java EE 5. #{}Може тепер також використовуватися в тегах JSP для getзначень, але не setзначення. Тепер ${}може в JSP також автоматично створювати керовані боби, але не setзначення.

  • Листопад 2006: Франлетс був представлений як наступник 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.


18

Додавання до відповіді BalusC ...

Ел був спочатку задуманий і реалізований Натаном Абрамсоном з Art Technology Group в 2001 році. У той час реалізація була відома як Найпростіша можлива мова вираження (SPEL). Пізніше реалізація була включена в JSTL1.0. Натан був частиною Експертної групи JSR-052 і був зарахований у специфікації JSTL як рушійна сила мови вираження.

"Особлива згадка Натана Абрамсона за те, що він був рушійною силою мови, що висловлюється в JSTL"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.