ejemplo - Diferencia entre JSP EL, JSF EL y Unified EL
jsf vs spring (2)
Añadiendo a la respuesta de BalusC ...
EL fue originalmente concebido e implementado por Nathan Abramson de Art Technology Group en 2001. En ese momento, la implementación se conocía como el lenguaje de expresión más simple posible (SPEL). La implementación se incluyó más adelante en el JSTL1.0. Nathan era parte del grupo de expertos JSR-052 , y se le acredita en la especificación JSTL como la fuerza impulsora detrás del lenguaje de expresión.
"Mención especial a Nathan Abramson por ser una fuerza impulsora detrás del lenguaje de expresión introducido en JSTL"
Me gustaría saber la diferencia detallada entre los Expression Languages (EL). Hay JSP EL, JSF EL y Unified EL.
Me gustaría saber la historia detrás del EL y cuál es el último EL que se usa en las aplicaciones Java EE. ¿Es el EL común para todas las tecnologías de visualización en las últimas versiones?
Junio de 2002: JSTL 1.0 fue presentado con EL por primera vez. Eran esas
${}
cosas que funcionan solo en etiquetas JSTL. Está diseñado para llamar a Javabeanget
methods.Nov 2003: se introdujo JSP 2.0 y EL se movió de JSTL 1.0 a JSP 2.0 en el paquete
javax.servlet.jsp.el
y se convirtió en EL estándar como parte del estándar J2EE 1.4. JSTL 1.1 fue enviado sin EL. Ahora${}
funciona fuera de las etiquetas JSTL en el texto de la plantilla JSP también.Mar 2004: se introdujo JSF 1.0 con EL diferido en el paquete
javax.faces.el
. Eran esos#{}
elementos que funcionan solo dentro de las etiquetas JSF. La diferencia con JSP EL${}
estándar es que no sologet
, sino que también puedeset
. Esto era obligatorio para la auto-creación de bean administrada y para establecer los valores de los componentes de entrada. El EL${}
estándar también funciona en etiquetas de salida JSF, pero no crearán automáticamente beans si todavía no existen en el alcance y no establecerán valores de entrada.Mayo de 2005: mientras se preparaba para el nuevo JSP 2.1, que debería publicarse en mayo de 2006, el EL
#{}
diferido se extrajo de JSF y se combinó con EL${}
estándar en el paquetejavax.el
. En ese momento, se convirtió en un EL unificado que se introdujo con JSF 1.2 y luego se convirtió en parte de JSP 2.1 y Java EE 5 estándar. El#{}
ahora también se puede usar en etiquetas JSP paraget
valores, pero no paraset
valores. El${}
ahora puede en JSP también crear automáticamente beans gestionados, pero noset
valores.Nov 2006: Facelets fue presentado como el sucesor de JSP. Permitió el uso de
#{}
en texto de plantilla fuera de las etiquetas JSF, como sustituto de<h:outputText>
sin ningún atributo. También trata a${}
como#{}
, por lo que ambos se comportan igual en Facelets.Diciembre de 2009: EL se extrajo de la especificación JSP y se convirtió en una especificación independiente que se mantendrá independientemente de JSP, la primera versión es EL 2.2 (JSR-245), análoga a JSP 2.2. La nueva característica principal es llamar a métodos parametrizados en lugar de llamar solo a los get / setters de Javabean dentro de la sintaxis
#{}
, por ejemplo#{bean.method(argument)}
. Además, Facelets se convirtió en parte del estándar Java EE 6.Junio de 2013: se introdujo EL 3.0 que viene con un procesador EL independiente, que permite el uso en una aplicación Java SE plana. Otras nuevas características principales son el nuevo operador de concatenación de cadenas
+=
, nuevas operaciones para objetos de colección, incluidas secuencias y expresiones Lambda->
(¡incluso en Java 6/7!) E importación de constantes en el alcance de EL.