Resumen de características de Expression Language (EL) versión 2.2

A la espera de la futura versión 3.0 que trae importantes novedades publico un resumen muy esquemático de las principales características y sintaxis del Expression Language en su actual versión 2.2 estable enfocando sólo su uso bajo JSP (expresiones inmediatas).

  • Los objetos visibles en las expresiones son aquellos atributos declarados en los cuatro ámbitos: página, petición, sesión y aplicación. Técnicamente son los disponibles en el PageContext.

  • Objetos implícitos:

    • pageContext
    • pageScope: mapa de atributos de página
    • requestScope: mapa de atributos de petición
    • sessionScope: mapa de atributos de sesión
    • applicationScope: mapa de atributos de aplicación (ServletContext)
    • param: mapa de parámetros de petición (valor único o primero)
    • paramValues: mapa de parámetros que devuelve todos los valores (String[]) para parámetros multivaluados
  • Tipos aceptados: JavaBeans, colecciones y Enums (Java 5).
  • Los valores de los Enum se convierten a String.
  • Colecciones: array o List, accesibles por índice y Map accesibles por clave.
  • Invocación de métodos mediante la sintaxis esperada: ${userNumberBean.userNumber('5')}
  • Operadores:
    • Aritméticos: +, - (binario), *, / y div, % y mod, - (unario)
    • Lógicos: y, &&, or, ||, not, !
    • Relacionales: ==, eq, !=, ne, <, lt, >, gt, <=, ge, >=, le
    • empty: comprueba si el valor es nulo o vacio (listas, arrays, String "", ...)
    • Condicional: A ? B : C