Джакартский язык выражения - Jakarta Expression Language
Этот предоставляет недостаточный контекст для тех, кто не знаком с предметом.Ноябрь 2017 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В Джакартский язык выражения (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.
Рекомендации
- ^ «Архивная копия». Архивировано из оригинал на 2013-09-27. Получено 2013-09-24.CS1 maint: заархивированная копия как заголовок (связь)
внешняя ссылка
- Официальный веб-сайт
- JSR 245: JavaServer Pages 2.1
- Единый язык выражений (статья в Sun Developer Network (SDN)
- Язык выражения
- Единый язык выражений для JSP и JSF (статья на java.net)