La especificación de JSF va actualmente por la versión 2.1 y de ella existen implementaciones como Mojarra, la implementación de referencia desarrollada por Oracle, o MyFaces, la implementación de la Fundación Apache.
Llevo unos años trabajando con JSF 1.2, pero ahora que parece que la nueva versión de la especificación y el ecosistema de librerías existentes alrededor es estable, me he decidido a ponerme las pilas con JSF 2.
Las principales mejoras que trae JSF 2 respecto a JSF 1.2 son:
- Facelets se integra en JSF como la tecnología a utilizar para la parte de la vista de las aplicaciones. Esto simplifica mucho el desarrollo de la interfaz de usuario y la creación de componentes reutilizables.
- Integración de llamadas Ajax dentro de la especificación. Antes había que utilizar librerías externas.
- Capacidad de enviar y recibir parámetros GET dentro de las URLs.
- Nuevos ámbitos para los beans, como el View Scope que mantiene un bean en memoria mientras se esté utilizando la misma vista que lo utiliza.
- Simplificación de la configuración de la aplicación mediante el uso de anotaciones.
En resumen JSF 2 es una evolución a mejor de lo que era JSF 1.2, integrando en el estándar varias de las cosas que aportaban librerías externas como RichFaces o PrimeFaces, como el soporte Ajax o el View Scope.