Джакартский язык выражения - Jakarta Expression Language

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

История

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

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

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

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

EL также освободил программиста от необходимости знать особенности фактического доступа к значениям: object.property может означать (в зависимости от того, что объект есть) либо object.get ("свойство") или же object.getProperty ("свойство") или же 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]

Функции

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

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

Примеры

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

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

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

$ {myBean.addNewOrder ('имя заказа')}

Реализации

  • Язык выражений Java (JEXL) - это библиотека, предназначенная для облегчения реализации динамических функций и функций сценариев в приложениях и средах, написанных на Java. Последний выпуск, версия: 3.1, 14 апреля 2017 г.
  • ДЖУЭЛЬ является Открытый исходный код реализация унифицированного языка выражений (EL), указанного как часть стандарта JSP 2.1 (JSR-245). Он считается стабильным и полнофункциональным и распространяется под лицензией Лицензия Apache 2.0. JUEL также подходит для использования в приложениях без JSP. Последний выпуск, версия 2.2.7, 6 февраля 2014 г.
  • Apache Commons EL интерпретатор JSP 2.0 EL от Apache. Последний выпуск, версия 1.0, 20 июня 2003 г. Ссылки для скачивания на исходный код и двоичный файл не работают.

Смотрите также

  • OGNL - EL с открытым исходным кодом, используемый WebWorkСтойки 2).
  • МВЭЛ - EL с открытым исходным кодом, используемый во многих проектах на основе Java.
  • SpEL - Spring Expression Language, EL с открытым исходным кодом, который является частью Spring Framework. Он в основном используется в портфельных проектах Spring, но, поскольку он не зависит от технологий, его можно использовать в других проектах.
  • Ант-Флака - Предназначен для упрощения Муравей сборка скриптов с помощью EL.
  • CEL - EL с открытым исходным кодом, разработанная Google.

Рекомендации

  1. ^ «Архивная копия». Архивировано из оригинал на 2013-09-27. Получено 2013-09-24.CS1 maint: заархивированная копия как заголовок (связь)

внешняя ссылка