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