RichFaces

RECU-0085 (Recurso Ficha Técnica)

Descripción

Existen varias implementaciones de JSF basadas en AJAX disponibles en la actualidad. Es posible crear componentes propios y ponerlos en práctica mediante funcionalidad AJAX, sin embargo, esto podría hacer que se tomara demasiado tiempo en el desarrollo. Estas implementaciones proporcionan facilidad de desarrollo y reutilización; es por ello por lo que muchos desarrolladores se decantan por este tipo de herramientas. Existen diversas implementaciones de JSF basadas en AJAX, como son Ajax4JSF, TomaHawk, RichFaces, Trinidad, IceFaces, y muchos otros. Todas ofrecen uno o más componentes a los desarrolladores para ahorrar tiempo. No obstante, cada una es diferente a otra. Dentro de este conjunto, las implementaciones Ajax4JSF, RichFaces y IceFaces son las que cobran mayor importancia debido a su divulgación entre la comunidad web.

Rich Faces es un framework de código abierto que añade capacidad Ajax dentro de aplicaciones JSF existentes sin recurrir a JavaScript. RichFaces incluye ciclo de vida, validaciones, conversores y la gestión de recursos estáticos y dinámicos. Los componentes de RichFaces están construidos con soporte Ajax y un alto grado de personalización del “look-and-feel” que puede ser fácilmente incorporado dentro de las aplicaciones JSF.

Ventajas e inconvenientes

Algunas ventajas que aporta la utilización de RichFaces son:

  • Al pertenecer RichFaces a un subproyecto de JBoss, su integracion con Seam es perfecta.
  • Al ser RichFaces es propiedad de Exadel, se ajusta perfectamente al IDE Red Hat Developer Studio (permite desarrollar aplicaciones visuales con RichFaces de forma fácil).

Inconvenientes detectados:

  • No se puede realizar una aplicación combinándolo con IceFaces y Seam.

Si no vas a utilizar RichFaces con Seam, y no es demasiado importante el tema de AJAX, IceFaces es interesante, porque trae un set de componentes mucho mas rico que el de RichFaces. IceFaces tiene actualmente una buena integración con Seam, pero no es tan flexible como Ajax4Jsf+RichFaces a la hora de trabajar con AJAX.

Requisitos e incompatibilidades

RichFaces fue desarrollado con una arquitectura de código abierto para ser compatible con la más amplia variedad de entornos.

Para poder trabajar con RichFaces 3.1.0 es necesario disponer de una aplicación JSF. Además hay que tener en cuenta la versión de los diferentes componentes implicados:

Versiones de Java soportadas:

  • JDK 1.5 y superiores.

Implementaciones de JavaServer Faces soportadas:

  • Sun JSF 1.1 RI
  • MyFaces 1.1.1 - 1.2
  • Facelets JSF 1.1.1 - 1.2
  • Seam 1.2. - 2.0
  • Servidores soportados
  • Apache Tomcat 4.1 - 6.0
  • IBM WebSphere 5.1 - 6.0
  • BEA WebLogic 8.1 - 9.0
  • Oracle AS/OC4J 10.1.3
  • Resin 3.0
  • Jetty 5.1.X
  • Sun Application Server 8 (J2EE 1.4)
  • Glassfish (J2EE 5)
  • JBoss 3.2 - 4.2.x
  • Sybase EAServer 6.0.1

Navegadores admitidos

  • Internet Explorer 6.0 - 7.0
  • Firefox 1.5 - 2.0
  • Opera 8.5 - 9.0
  • Netscape 7.0
  • Safari 2.0

Interacciones

RichFaces se integra con diferentes componentes para poder realizar aplicaciones más potentes:

Sun JSF RI

RichFaces trabaja con cualquier implementación de JSF (1.1 y 1.2) y con la mayoría de las bibliotecas de componentes JSF sin ninguna configuración adicional.

Apache MyFaces

RichFaces trabaja con todos Apache MyFaces versiones (1.1.1 - 1.1.6), incluidas las bibliotecas específicas como Tomahawk, Sandbox y Trinidad (el anterior ADF Faces). Sin embargo, hay algunas consideraciones a tener en cuenta para la configuración de las aplicaciones para trabajar con MyFaces y RichFaces. Hay algunos problemas con diferentes filtros definidos en el archivo web.xml. Para evitar estos problemas, el filtro de RichFaces debe ser el primero entre otros filtros dentro del archivo de configuración web.xml. Aún más, existen algunos problemas si se opta por utilizar MyFaces + Seam. Si se usa esta combinación, se debe usar el tag a4j:page dentro del f:view.

Facelets

RichFaces ofrece un alto nivel de soporte para Facelets. Cuando se trabaja con RichFaces, no hay diferencia entre las diferentes releases de Facelets que se utilizan.

JBoss Seam

Una de las novedades de RichFaces 3,1 es la integración con JBoss Seam. Esto mejora aún más la experiencia del usuario mediante la simplificación de la configuración y el "plumbing code", así como la prestación de estado y la concurrencia para la gestión de Ajax.