Jakarta Ausdruckssprache

Das Jakarta Ausdruckssprache (El; früher Ausdruckssprache und Einheitliche Ausdruckssprache) ist ein Spezialzweckprogrammiersprache Meistens verwendet in Jakarta ee Webanwendungen zum Einbettung und Bewertung Ausdrücke In Webseiten. Die Spezifikationsautoren und Expertengruppen der Java ee Web-Tier-Technologien haben an einer einheitlichen Ausdruckssprache gearbeitet, die erstmals in die enthalten war JSP 2.1 Spezifikation (JSR-245) und später in JSR-341, Teil von Java ee 7, spezifiziert.

Geschichte

Herkunft als JSTL

Die Ausdruckssprache begann als Teil der JavaServer Pages Standard -Tag -Bibliothek (JSTL) und wurde ursprünglich als Spel bezeichnet (einfachste Sprache der Ausdruckssprache), dann gerecht Ausdruckssprache (El). Es war eine Skriptsprache, die den Zugang zu ermöglichte Java Komponenten (Javabeans) durch JSP. Seit JSP 2.0, es wurde im Inneren verwendet JSP Tags, um Java -Code von JSP zu trennen und einen leichteren Zugriff auf Java -Komponenten (als im Java -Code) zu ermöglichen.

JSP 2.0

Im Laufe der Jahre hat sich die Expressionssprache zu fortgeschritteneren Funktionen entwickelt und wurde in die JSP 2.0 -Spezifikation aufgenommen. Scripting wurde für Web-In-In-In-Kon-In-Kon-In-Konzent-Designer erleichtert, die wenig oder praktisch keine Kenntnis der Kernsprache Java-Sprache haben. Diese Skriptsprache machte JSP im wahrsten Sinne zu einer Skriptsprache. Vor EL bestand JSP aus einigen speziellen Tags wie Drehbuch, Ausdrücke usw., in denen Java -Code explizit geschrieben wurde. Mit EL muss der Designer des Webkontents nur wissen, wie man ordnungsgemäße Anrufe bei Kern-Java-Methoden tätigt.

El war sowohl syntaktisch als auch semantisch ähnlich wie JavaScript Ausdrücke:

  • Es gibt keine Typecasting
  • Typkonvertierungen werden normalerweise implizit durchgeführt
  • Doppel- und Einzelzitate sind gleichwertig
  • Object.Property hat die gleiche Bedeutung wie Objekt ['Eigenschaft']

El befreit den Programmierer auch davon, die Besonderheiten der tatsächlich zugegriffenen Werte kennenzulernen: Object.Property kann bedeuten (je nachdem, was die Objekt entweder Object.get ("Eigenschaft") oder Object.getProperty ("Eigenschaft") oder Object.getProperty () usw.

EL 2.1

Während der Entwicklung von JSP 2.0 die Javaserver Gesichter Die Technologie wurde veröffentlicht, die auch eine Expressionssprache benötigte, aber die in der JSP 2.0 -Spezifikation definierte Expressionssprache erfüllte nicht alle Bedürfnisse für die Entwicklung mit der JSF -Technologie. Die offensichtlichsten Einschränkungen bestand darin, dass seine Ausdrücke sofort bewertet wurden und die JSF-Komponenten Methoden nicht auf serverseitigen Objekten aufrufen konnten. Eine leistungsstärkere Sprache wurde mit den folgenden neuen Funktionen erstellt:

  • Aufgeschobene Ausdrücke, die nicht sofort bewertet werden
  • Ausdrücke, die Daten festlegen und abrufen können
  • Methodenausdrücke, die Methoden aufrufen können

Die neue Ausdruckssprache funktionierte gut für die Zwecke von JSF. Die Entwickler hatten jedoch Probleme, wenn sie das JSP EL in die JSF EL integrierten, weil sie Konflikte haben. Aufgrund dieser Inkompatibilitäten wurde die Einheitliche Sprachinitiative der einheitlichen Expression begonnen, diese Ausdrucksprachen zu vereinheitlichen. Ab JSP 2.1 wurden die Ausdruckssprachen von JSP 2.0 und JSF 1.1 in eine einzelne einheitliche Ausdruckssprache (EL 2.1) verschmolzen.

EL 3.0

Version 3.0 der Expressionssprache (die Unified wurde nicht mehr als notwendig erachtet) wurde in einem JSR unabhängig von den JSP- und JSF -Spezifikationen in entwickelt JSR-341. Einige neue Funktionen wurden hinzugefügt, insbesondere EL -Äquivalente von Java 8 -Streams und Lambda -Ausdrücken.[1]

El 4.0

Version 4.0 wurde am 2020-10-07 veröffentlicht.[2] Die API wechselte im Rahmen des Übergangs von Java ee nach Jakarta EE vom Paket von Javax.el zum Jakarta.el -Paket.

Merkmale

Die einheitliche EL ist eine Vereinigung der Sprachen der JSP- und JSF -Ausdruckssprachen. Zusätzlich zu den Funktionen, die bereits im JSP EL verfügbar sind, verfügt die Unified EL über die folgenden Funktionen:

  • Aufgeschobene Bewertung
  • Unterstützung für Ausdrücke, die Werte und Ausdrücke festlegen können, die Methoden aufrufen können
  • Eine Steckabteilung zur Lösung von Ausdrücken

Beispiele

Dies zeigt ein einfaches Beispiel dafür, dass ein Unified EL innerhalb eines JSTL -Tags "C: Out" verwendet wird:

 

Ein Ausdruck, der eine Methode mit einem Parameter aufruft:

$ {mybean.addneworder ('orderName')}

Implementierungen

  • Java Expressionssprache (JEXL) ist eine Bibliothek, die die Implementierung dynamischer und Skriptfunktionen in Anwendungen und Frameworks in Java erleichtern soll. Neueste Version, Version: 3.2.1, 25. Juni 2021.
  • Juel ist ein Open Source Implementierung der einheitlichen Expressionssprache (EL), die als Teil des JSP 2.1-Standards (JSR-245) angegeben ist. Es wird als stabil angesehen und ist vollständig und wird unter dem lizenziert Apache -Lizenz 2.0. Juel ist auch für die Verwendung in Nicht-JSP-Anwendungen geeignet. Neueste Veröffentlichung, Version 2.2.7, 6. Februar 2014.
  • Apache Commons El ist der JSP 2.0 EL -Interpreter von Apache. Neueste Veröffentlichung, Version 1.0, 20. Juni 2003. Download -Links zu Quelle und Binary sind gebrochen.

Siehe auch

  • Ognl - eine Open Source El, die von Webwork verwendet wird (und Streben2).
  • Mvel -Ein Open Source El, der in vielen Java-basierten Projekten verwendet wird.
  • Spel - Frühlingsausdruckssprache, eine Open Source El, die Teil der ist Federgerüst. Es wird hauptsächlich in Frühlingsportfolio-Projekten verwendet, aber weil es Technologie-agnostisch ist, kann es in anderen Projekten verwendet werden.
  • Ant-Flaka - beabsichtigt zu vereinfachen Ameise Erstellen Sie Skripte mit Hilfe von El.
  • CEL - Eine von Google entwickelte Open -Source -El.

Verweise

  1. ^ "Archivierte Kopie". Archiviert von das Original 2013-09-27. Abgerufen 2013-09-24.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  2. ^ "Jakarta Expression Language 4.0.0". Abgerufen 2021-01-05.

Externe Links