Jump to content

Джакартский язык выражений

Язык выражений Jakarta ( EL ; ранее язык выражений и унифицированный язык выражений ) — это язык программирования специального назначения , который в основном используется в веб-приложениях Jakarta EE для внедрения и оценки выражений на веб-страницах. Авторы спецификаций и группы экспертов по технологиям веб-уровня Java EE работали над унифицированным языком выражений, который сначала был включен в спецификацию JSP 2.1 (JSR-245), а затем определен сам по себе в JSR-341, части Java EE. 7.

Происхождение как JSTL

[ редактировать ]

Язык выражений зародился как часть стандартной библиотеки тегов JavaServer Pages (JSTL) и первоначально назывался SPEL (самый простой возможный язык выражений), затем просто язык выражений ( EL ). Это был язык сценариев, который позволял получить доступ к компонентам Java ( JavaBeans ) через JSP . Начиная с JSP 2.0 , он использовался внутри тегов JSP для отделения кода Java от JSP и обеспечения более легкого доступа к компонентам Java (чем в коде Java).

С годами язык выражений развивался и включал в себя более продвинутые функциональные возможности, и он был включен в спецификацию JSP 2.0. Написание сценариев стало проще для дизайнеров веб-контента, которые мало или практически не знают основного языка Java. Этот язык сценариев сделал JSP языком сценариев в истинном смысле этого слова. До EL JSP состоял из некоторых специальных тегов, таких как скриптлеты , выражения и т. д., внутри которых явно записывался код Java. При использовании EL дизайнеру веб-контента нужно только знать, как правильно вызывать основные методы Java.

EL был как синтаксически, так и семантически похож на JavaScript выражения :

  • нет никакого приведения типов
  • преобразования типов обычно выполняются неявно
  • двойные и одинарные кавычки эквивалентны
  • object.property имеет то же значение, что и object['property']

EL также освободил программиста от необходимости знать особенности фактического доступа к значениям: object.property может означать (в зависимости от того, что object есть) либо object.get("property") или object.getProperty("property") или object.getProperty() и т. д.

Во время разработки JSP 2.0 была выпущена технология JavaServer Faces , для которой также требовался язык выражений, но язык выражений, определенный в спецификации JSP 2.0, не удовлетворял всем потребностям разработки с использованием технологии JSF. Наиболее очевидными ограничениями было то, что его выражения оценивались немедленно, а компоненты JSF не могли вызывать методы для объектов на стороне сервера. Был создан более мощный язык со следующими новыми функциями:

  • Отложенные выражения, которые не оцениваются немедленно.
  • Выражения, которые могут как устанавливать, так и получать данные
  • Выражения методов, которые могут вызывать методы

Новый язык выражений хорошо подходил для целей JSF. Но у разработчиков возникли проблемы при интеграции JSP EL с JSF EL из-за конфликтов. Из-за этих несовместимостей была начата инициатива по объединению языков выражений. Начиная с JSP 2.1, языки выражений JSP 2.0 и JSF 1.1 были объединены в единый унифицированный язык выражений (EL 2.1).

Версия 3.0 языка выражений (унифицированный язык больше не считался необходимым) была разработана в JSR, независимом от спецификаций JSP и JSF в JSR-341 . Были добавлены некоторые новые функции, в первую очередь EL-эквиваленты потоков Java 8 и лямбда-выражений. [1]

Версия 4.0 была выпущена 7 октября 2020 г. [2] API перешел из пакета javax.el в пакет jakarta.el в рамках перехода от Java EE к Jakarta EE.

Унифицированный EL представляет собой объединение языков выражений JSP и JSF. В дополнение к функциям, уже доступным в JSP EL, унифицированный EL имеет следующие возможности:

  • Отложенная оценка
  • Поддержка выражений, которые могут устанавливать значения, и выражений, которые могут вызывать методы.
  • Подключаемый API для разрешения выражений

Это показывает простой пример использования Unified EL в теге JSTL «c:out»:

<c:out value="${myBean.myField}" />

Выражение, вызывающее метод с параметром:

${myBean.addNewOrder('orderName')}

Реализации

[ редактировать ]
  • Язык выражений Java (JEXL) — это библиотека, предназначенная для облегчения реализации динамических функций и функций сценариев в приложениях и средах, написанных на Java. Последний выпуск, версия: 3.2.1, 25 июня 2021 г.
  • JUEL — это с открытым исходным кодом реализация унифицированного языка выражений (EL) , указанная как часть стандарта JSP 2.1 (JSR-245). Он считается стабильным и полнофункциональным и распространяется по лицензии Apache License 2.0 . JUEL также подходит для использования в приложениях, отличных от JSP. Последний выпуск, версия 2.2.7, 6 февраля 2014 г.
  • Apache Commons EL — это интерпретатор JSP 2.0 EL от Apache. Последний выпуск, версия 1.0, 20 июня 2003 г. Ссылки на скачивание исходного кода и двоичного файла не работают.

См. также

[ редактировать ]
  • OGNL — EL с открытым исходным кодом, используемый WebWork (и Struts 2).
  • MVEL — EL с открытым исходным кодом, используемый во многих проектах на основе Java.
  • SpEL — Spring Expression Language, EL с открытым исходным кодом, который является частью Spring Framework . В основном он используется в проектах портфолио Spring, но, поскольку он не зависит от технологии, его можно использовать и в других проектах.
  • Ant-Flaka — предназначен для упрощения сценариев сборки Ant с помощью EL.
  • CEL – EL с открытым исходным кодом, разработанный Google.
  1. ^ «Стандартное отклонение: иллюстрация языка выражений 3.0 в среде сервлетов | Java.net» . Архивировано из оригинала 27 сентября 2013 г. Проверено 24 сентября 2013 г.
  2. ^ «Джакартский язык выражений 4.0.0» . Архивировано из оригинала 9 января 2021 г. Проверено 05 января 2021 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e867ce88d66e4324d187b6fbfcb9ca6c__1712088180
URL1:https://arc.ask3.ru/arc/aa/e8/6c/e867ce88d66e4324d187b6fbfcb9ca6c.html
Заголовок, (Title) документа по адресу, URL1:
Jakarta Expression Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)