Differenza tra JSP EL, JSF EL e Unified EL [chiuso]


122

Vorrei conoscere la differenza dettagliata tra i linguaggi di espressione (EL). Ci sono JSP EL, JSF EL e Unified EL.

Vorrei conoscere la storia dietro l'EL e qual è l'ultimo EL utilizzato nelle applicazioni Java EE. È l'EL comune per tutte le tecnologie di visualizzazione nelle ultime versioni?

Risposte:


221
  • Giugno 2002: JSTL 1.0 è stato introdotto con EL per la prima volta. Erano quelle ${}cose che funzionano solo nei tag JSTL. È progettato per chiamare getmetodi Javabean .

  • Nov 2003: è stato introdotto JSP 2.0 ed EL è stato spostato da JSTL 1.0 a JSP 2.0 nel javax.servlet.jsp.elpacchetto ed è diventato EL standard come parte dello standard J2EE 1.4. JSTL 1.1 è stato spedito senza EL. Ora ${}funziona anche al di fuori dei tag JSTL nel testo del modello JSP.

  • Mar 2004: JSF 1.0 è stato introdotto con EL differito nel javax.faces.elpacchetto. Erano quelle #{}cose che funzionano solo all'interno dei tag JSF. La differenza con JSP EL standard ${}è che non solo funziona get, ma può anche farlo set. Questo era obbligatorio per la creazione automatica del bean gestito e l'impostazione dei valori dei componenti di input. Lo standard EL ${}funziona anche nei tag di output JSF, ma non creeranno automaticamente i bean se non esistono ancora nell'ambito e non imposteranno i valori di input.

  • Maggio 2005: mentre si stava ancora preparando il nuovo JSP 2.1 che dovrebbe essere rilasciato nel maggio 2006, EL differito è #{}stato estratto da JSF e combinato con EL standard ${}nel javax.elpacchetto. A quel punto, è diventato EL unificato che è stato introdotto con JSF 1.2 ed è diventato successivamente parte di JSP 2.1 e dello standard Java EE 5. L' #{}può ora essere utilizzato anche nei tag JSP per geti valori, ma non per seti valori. L' ${}può ora in JSP anche Creazione automatica gestita fagioli, ma non seti valori.

  • Nov 2006: Facelets è stato introdotto come successore di JSP. Consentiva l'uso #{}nel testo del modello al di fuori dei tag JSF, in sostituzione di <h:outputText>senza attributi. Tratta anche ${}come #{}, quindi entrambi si comportano allo stesso modo in Facelets.

  • Dicembre 2009: EL è stato estratto dalla specifica JSP ed è diventata una specifica autonoma che verrà mantenuta indipendentemente da JSP, la prima versione è EL 2.2 (JSR-245), analoga a JSP 2.2. La nuova caratteristica principale è chiamare metodi parametrizzati invece di chiamare solo getter / setter Javabean all'interno della #{}sintassi, ad es #{bean.method(argument)}. Inoltre, Facelets è diventato parte dello standard Java EE 6.

  • Giugno 2013: è stato introdotto EL 3.0 che viene fornito con un processore EL autonomo, che consente l'utilizzo in una semplice applicazione Java SE. Altre principali novità sono il nuovo operatore di concatenazione di stringhe +=, nuove operazioni per oggetti di raccolta, inclusi flussi ed espressioni Lambda ->(anche su Java 6/7!) E l'importazione di costanti nell'ambito EL.


18

Aggiungendo alla risposta di BalusC ...

EL è stato originariamente concepito e implementato da Nathan Abramson di Art Technology Group nel 2001. All'epoca l'implementazione era nota come SPEL (Simplest Possible Expression Language). L'implementazione è stata successivamente inclusa nel JSTL1.0. Nathan faceva parte del gruppo di esperti JSR-052 ed è stato accreditato nelle specifiche JSTL come la forza trainante del linguaggio delle espressioni.

"Menzione speciale a Nathan Abramson per essere stato una forza trainante dietro il linguaggio delle espressioni introdotto in JSTL"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.