Unterschied zwischen JSP EL, JSF EL und Unified EL [geschlossen]

122

Ich möchte den detaillierten Unterschied zwischen den Ausdruckssprachen (EL) kennen. Es gibt JSP EL, JSF EL und Unified EL.

Ich möchte die Geschichte hinter der EL und die neueste EL kennen, die in Java EE-Anwendungen verwendet wird. Ist die EL für alle Ansichtstechnologien in den neuesten Versionen gleich?

Krishna
quelle

Antworten:

221
  • Jun 2002: JSTL 1.0 wurde erstmals mit EL eingeführt. Es waren diese ${}Dinge, die nur in JSTL-Tags funktionieren. Es wurde entwickelt, um Javabean- getMethoden aufzurufen .

  • November 2003: JSP 2.0 wurde eingeführt und EL wurde im javax.servlet.jsp.elPaket von JSTL 1.0 auf JSP 2.0 verschoben und als Teil des J2EE 1.4-Standards zum Standard-EL . JSTL 1.1 wurde ohne EL geliefert. Funktioniert jetzt auch ${}außerhalb von JSTL-Tags im JSP-Vorlagentext.

  • März 2004: JSF 1.0 wurde mit verzögerter EL im javax.faces.elPaket eingeführt. Es waren diese #{}Dinge, die nur in JSF-Tags funktionieren. Der Unterschied zu Standard-JSP-EL ${}besteht darin, dass dies nicht nur funktioniert get, sondern auch funktioniert set. Dies war für die automatische Erstellung von verwalteten Bean und das Festlegen der Werte von Eingabekomponenten obligatorisch. Die Standard-EL ${}funktioniert auch in JSF-Ausgabe-Tags, erstellt jedoch keine Beans automatisch, wenn sie noch nicht im Gültigkeitsbereich vorhanden sind und keine Eingabewerte festgelegt werden.

  • Mai 2005: Während der Vorbereitung auf die neue JSP 2.1, die im Mai 2006 veröffentlicht werden soll, wurde die verzögerte EL #{}aus JSF extrahiert und mit der Standard-EL ${}im javax.elPaket kombiniert . Zu diesem Zeitpunkt wurde es zu einer einheitlichen EL, die mit JSF 1.2 eingeführt wurde und später Teil des JSP 2.1- und Java EE 5-Standards wurde. Das #{}kann jetzt auch in JSP-Tags für getWerte verwendet werden, jedoch nicht für setWerte. Das ${}kann jetzt in JSP auch automatisch verwaltete Beans erstellen, aber keine setWerte.

  • November 2006: Facelets wurde als Nachfolger von JSP eingeführt. Es erlaubte die Verwendung von #{}Vorlagentext außerhalb von JSF-Tags als Ersatz für <h:outputText>ohne Attribute. Es ist auch Leckereien ${}wie #{}, so dass sie beide verhalten derselben in Facelets.

  • Dezember 2009: EL wurde aus der JSP-Spezifikation extrahiert und wurde zu einer eigenständigen Spezifikation, die unabhängig von JSP beibehalten wird. Die erste Version ist EL 2.2 (JSR-245), analog zu JSP 2.2. Die wichtigste neue Funktion ist das Aufrufen parametrisierter Methoden, anstatt nur Javabean Getter / Setter innerhalb der #{}Syntax aufzurufen , z #{bean.method(argument)}. Darüber hinaus wurden Facelets Teil des Java EE 6-Standards.

  • Jun 2013: EL 3.0 wurde eingeführt, das mit einem eigenständigen EL-Prozessor geliefert wird, der die Verwendung in einer einfachen Java SE-Anwendung ermöglicht. Weitere wichtige neue Funktionen sind der neue String-Verkettungsoperator +=, neue Operationen für Sammlungsobjekte, einschließlich Streams und Lambda-Ausdrücke ->(auch unter Java 6/7!) Und das Importieren von Konstanten in den EL-Bereich.

BalusC
quelle
18

Hinzufügen zu BalusCs Antwort ...

EL wurde ursprünglich von Nathan Abramson von der Art Technology Group im Jahr 2001 konzipiert und implementiert. Zu dieser Zeit war die Implementierung als Simplest Possible Expression Language (SPEL) bekannt. Die Implementierung wurde später in JSTL1.0 aufgenommen. Nathan war Teil der JSR-052-Expertengruppe und wurde in der JSTL-Spezifikation als treibende Kraft hinter der Ausdruckssprache anerkannt.

"Besondere Erwähnung an Nathan Abramson als treibende Kraft hinter der in JSTL eingeführten Ausdruckssprache"

jsears
quelle