Articulo de referencia

Lenguaje de expresión de Yakarta

El lenguaje de expresión de Jakarta ( EL ; anteriormente Lenguaje de expresión y Lenguaje de expresión unificado ) es un lenguaje de programación de propósito especial que se ut...

El lenguaje de expresión de Jakarta ( EL ; anteriormente Lenguaje de expresión y Lenguaje de expresión unificado ) es un lenguaje de programación de propósito especial que se utiliza principalmente en aplicaciones web de Jakarta EE para incrustar y evaluar expresiones en páginas web. Los autores de especificaciones y los grupos de expertos de las tecnologías de nivel web de Java EE han trabajado en un lenguaje de expresión unificado que se incluyó por primera vez en la especificación JSP 2.1 (JSR-245) y luego se especificó por sí solo en JSR-341, parte de Java EE 7.

Historia

Origen como JSTL

El lenguaje de expresión comenzó como parte de la biblioteca de etiquetas estándar de JavaServer Pages (JSTL) y originalmente se llamaba SPEL (lenguaje de expresión más simple posible), luego simplemente lenguaje de expresión ( EL ). Era un lenguaje de script que permitía el acceso a componentes Java ( JavaBeans ) a través de JSP . Desde JSP 2.0 , se ha utilizado dentro de las etiquetas JSP para separar el código Java de JSP y para permitir un acceso más fácil a los componentes Java (que en el código Java).

JSP 2.0

Con el paso de los años, el lenguaje de expresiones ha evolucionado para incluir funciones más avanzadas y se incluyó en la especificación JSP 2.0. La creación de scripts se hizo más sencilla para los diseñadores de contenido web que tenían poco o prácticamente ningún conocimiento del lenguaje Java básico. Este lenguaje de scripts convirtió a JSP en un lenguaje de scripts en el verdadero sentido de la palabra. Antes de EL, JSP consistía en algunas etiquetas especiales como scriptlets , expresiones, etc. dentro de las cuales se escribía código Java de forma explícita. Con EL, el diseñador de contenido web solo necesita saber cómo realizar llamadas adecuadas a los métodos básicos de Java.

EL era, tanto sintáctica como semánticamente, similar a las expresiones de JavaScript :

  • No hay encasillamiento
  • Las conversiones de tipos generalmente se realizan de forma implícita.
  • Las comillas dobles y simples son equivalentes
  • object.propertytiene el mismo significado queobject['property']

EL también liberó al programador de tener que conocer las particularidades de cómo se accede realmente a los valores: object.propertypuede significar (dependiendo de lo que objectsea) object.get("property")o object.getProperty("property")o object.getProperty()etc.

EL 2.1

Durante el desarrollo de JSP 2.0 se lanzó la tecnología JavaServer Faces , que también necesitaba un lenguaje de expresión, pero el lenguaje de expresión definido en la especificación JSP 2.0 no satisfacía todas las necesidades de desarrollo con tecnología JSF. Las limitaciones más obvias eran que sus expresiones se evaluaban inmediatamente y los componentes JSF no podían invocar métodos en objetos del lado del servidor. Se creó un lenguaje más potente con las siguientes nuevas características:

  • Expresiones diferidas, que no se evalúan inmediatamente
  • Expresiones que pueden establecer y obtener datos
  • Expresiones de método, que pueden invocar métodos

El nuevo lenguaje de expresión funcionó bien para los propósitos de JSF. Pero los desarrolladores tuvieron problemas al integrar JSP EL con JSF EL debido a conflictos. Debido a estas incompatibilidades, se inició la iniciativa de lenguaje de expresión unificado para unificar estos lenguajes de expresión. A partir de JSP 2.1, los lenguajes de expresión de JSP 2.0 y JSF 1.1 se fusionaron en un único lenguaje de expresión unificado (EL 2.1).

EL 3.0

La versión 3.0 del lenguaje de expresión (la unificación ya no se consideró necesaria) se desarrolló en un JSR independiente de las especificaciones JSP y JSF en JSR-341. Se agregaron algunas características nuevas, en particular los equivalentes EL de los flujos de Java 8 y las expresiones lambda . [1]

EL 4.0

La versión 4.0 se lanzó el 7 de octubre de 2020. [2] La API se trasladó del paquete javax.el al paquete jakarta.el, como parte de la transición de Java EE a Jakarta EE. Parte de Jakarta EE 9.

EL 5.0

La versión 5.0 se lanzó el 5 de septiembre de 2022. [3] Se eliminó un método obsoleto hace mucho tiempo, se aclararon ambigüedades en la especificación y se agregaron pequeñas mejoras de usabilidad. Parte de Jakarta EE 10.

Características

El lenguaje de expresión unificado es una unión de los lenguajes de expresión JSP y JSF. Además de las características ya disponibles en el lenguaje de expresión JSP, el lenguaje de expresión unificado tiene las siguientes características:

  • Evaluación diferida
  • Compatibilidad con expresiones que pueden establecer valores y expresiones que pueden invocar métodos
  • Una API conectable para resolver expresiones

Ejemplos

Este es un ejemplo simple de uso de EL unificado dentro de una etiqueta "c:out" de JSTL:

<c:out valor="${miBean.miCampo}" />

Una expresión que llama a un método con un parámetro:

${myBean.addNewOrder('nombreDeOrden')}

Implementaciones

  • Java Expression Language (JEXL) es una biblioteca destinada a facilitar la implementación de funciones dinámicas y de scripting en aplicaciones y marcos escritos en Java. Última versión: 3.2.1, 25 de junio de 2021.
  • JUEL es una implementación de código abierto del lenguaje de expresión unificada (EL), especificado como parte del estándar JSP 2.1 (JSR-245). Se considera estable y completo en cuanto a características, y está licenciado bajo la Licencia Apache 2.0 . JUEL también es adecuado para su uso en aplicaciones que no sean JSP. Última versión, versión 2.2.7, 6 de febrero de 2014.
  • Apache Commons EL es el intérprete JSP 2.0 EL de Apache. Última versión, versión 1.0, 20 de junio de 2003. Los enlaces de descarga al código fuente y al binario no funcionan.

Véase también

  • OGNL : un EL de código abierto utilizado por WebWork (y Struts 2).
  • MVEL : un EL de código abierto utilizado en muchos proyectos basados ​​en Java.
  • SpEL – Spring Expression Language, un lenguaje de expresión de código abierto que forma parte de Spring Framework . Se utiliza principalmente en proyectos de la cartera de Spring, pero como no depende de ninguna tecnología, puede utilizarse en otros proyectos.
  • Ant-Flaka: diseñado para simplificar los scripts de compilación de Ant con la ayuda de EL.
  • CEL – Un EL de código abierto desarrollado por Google.

Referencias

  1. ^ "Desviación estándar: una ilustración del lenguaje de expresión 3.0 en un entorno de servlet | Java.net". Archivado desde el original el 27 de septiembre de 2013. Consultado el 24 de septiembre de 2013 .
  2. ^ "Jakarta Expression Language 4.0.0". Archivado desde el original el 9 de enero de 2021. Consultado el 5 de enero de 2021 .
  3. ^ "Jakarta Expression Language 5.0.0". Archivado desde el original el 13 de mayo de 2024. Consultado el 1 de septiembre de 2024 .
  • Sitio web oficial
  • JSR 245: Páginas JavaServer 2.1
  • Lenguaje de expresión unificado (artículo en Sun Developer Network (SDN))
  • Lenguaje de expresión
  • Lenguaje de expresión unificado para JSP y JSF (artículo en java.net)
Obtenido de "https://es.wikipedia.org/w/index.php?title=Lenguaje_de_expresión_de_Jakarta&oldid=1247362231"