JSP 2.1 y JSTL 1.2

Siguiendo con las novedades en las especificaciones J2EE Web Tier, las especificaciones de JSP y JSTL no presentan prácticamente ninguna novedad salvo adecuarse al nuevo documento de especificación del lenguaje EL.

En esta parte es donde si han habido cambios, ya que se han incorporado al EL cambios que ya había adoptado JSF.

Para empezar, ahora las expresiones no son sólo ${} sino también #{} aunque en la especificación se indica que ambas son equivalentes y que la diferencia depende del entorno en el que se utilicen (por ejemplo Faces utiliza #{} para expresiones con evaluación diferida).

Se ha ampliado bastante la sintaxis básica. Anteriormente (con JSP 2.0) el EL sólo permitia producir rvalues. O sea, expresiones que devuelven un valor. Ahora es posible indicar también rvalues y métodos. Un ejemplo tomado de la propia especificación (ejemplo de JSF):

En este ejemplo #{checkOutFormBean.email} es un rvalue ya que no representa un valor sino una propiedad del bean a la que ha de darse valor según el campo de formulario. En el caso de #{checkOutFormBean.validateEmail} hace referencia a un método que se invocará para validar ese campo.

Realmente un cambio centrado en el EL que lo va a convertir en una herramienta aún más util.