En JSF, ¿qué es RichFaces?

Entonces, comience con el principio:

Miras en Wikipedia y obtienes:

JavaServer Faces ( JSF ) es una especificación de Java para crear interfaces de usuario basadas en componentes para aplicaciones web.

¿Entonces que significa eso? Las aplicaciones web están basadas en la solicitud / respuesta por naturaleza. Esto encaja muy bien con el protocolo HTTP sin estado, pero no es una experiencia de desarrollo muy agradable. Imagine un formulario donde tiene decenas, o cientos de campos, decenas de botones, etc. Para poder manejar sus operaciones (entienda en qué botón se hizo clic, qué campo (s) se actualizó, etc., etc.) escribir mucho código repetitivo. Agregue a ese campo validación, conversión, tratamiento de errores e informes, navegación, etc. y obtendrá una gran cantidad de código (potencialmente defectuoso) para escribir incluso antes de comenzar a manejar sus casos comerciales.

Desde este punto de vista, JSF fue una forma realmente genial de tratar sus interfaces de usuario de manera más similar a cómo desarrollaría una aplicación de escritorio. Tienes componentes en la pantalla, tienen valores, envían mensajes, tienen oyentes, etc. Esto es lo que hace un marco basado en componentes, en oposición a lo que hace una página o marco basado en acciones (que trata todo en su nivel más básico como formulario envía). Esto agrega mucha productividad al desarrollador, y para muchos casos (principalmente intranets, donde el número de usuarios está en el rango de miles como máximo, no millones), considero que es realmente la mejor opción (también tendrá que tener en cuenta cómo son competentes los miembros de su equipo, porque es realmente fácil estropear las cosas).

Ahora, la cuestión es que JSF salió como una especificación, es decir, un documento sobre cómo debería funcionar.

A pesar de lo que otros han dicho, hay (y creo que siempre hubo) solo 2 implementaciones de esta especificación: la realizada por Sun (y ahora administrada por Oracle) llamada JSF RI (implementación de referencia) y la realizada por Apache, llamada MyFaces En sus primeras versiones (antes y quizás un poco después de que saliera JSF 1.2), el JSF RI tendía a ser muy defectuoso, de bajo rendimiento, etc., y esto hizo que la implementación de Apache obtuviera una gran cuota de mercado. Mientras tanto, las cosas han cambiado, y a partir de JSF 2.1, 2.2 y probablemente 2.3, JSF RI es el camino a seguir. Apache MyFaces tampoco es malo, es solo que JSF RI es tan bueno, que poco sucede en el otro campo.

Dicho todo esto, JSF es algo así como un marco de infraestructura, se trata de cómo deberían funcionar las cosas, cómo deberían funcionar las solicitudes, los parámetros, las validaciones, las conversiones, la propagación de errores y la navegación. En cuanto a la interfaz de usuario, solo define los campos HTML estándar (entrada, área de texto, algo así como un div, una tabla muy básica, carga de archivos básica, etc.). No encontrará allí calendarios sofisticados, ni selectores de fechas, ni agradables cuadrículas de datos, paginadores, gráficos, lo que sea. Pero al estar muy bien diseñado, deja lugar para buenas extensiones, también conocidas como bibliotecas de componentes.

Hoy en día, la regla indiscutible de eso es Primefaces. No encontrará ninguna otra biblioteca de componentes JSF tan desarrollada y con tantos componentes. Pero este no siempre fue el caso, y ha habido alternativas a eso (Primefaces también fue extremadamente defectuoso en sus versiones 1.xy creo que 2.x). Y aquí es donde entra Richfaces. Es el trabajo original de algunos tipos muy inteligentes de Exadel (incluso antes de que apareciera Primefaces), que más tarde fue tomado de alguna manera por JBoss y mucho de lo que agregaron a la infraestructura de JSF 1.x se convirtió en las bases de lo que se convirtió más tarde en la especificación JSF 2.x (envíos parciales de páginas, actualizaciones parciales de páginas, ajax, mejores alcances, etc.).

Últimamente, con Primefaces realmente teniendo una adopción tan fuerte en el mercado, creo que JBoss decidió que han perdido la batalla en el campo de los componentes JSF, por lo que Richfaces (aunque no está muerto) no está realmente desarrollado por un tiempo ahora (solo arreglos de mantenimiento para el últimos años) y ahora probablemente se unirá al campo de código abierto puro y morirá lentamente.

Entonces, para resumir, JSF es el marco central, JSF RI / MyFaces son dos implementaciones JSF rivales, mientras que RichFaces es en este momento una biblioteca de componentes que se está desvaneciendo por falta de adopción, ya que la biblioteca Primefaces es ahora el estándar de facto en el mundo de los componentes JSF (mientras que Richfaces siempre era gratuito, Primefaces se mudó a un modelo donde solo las versiones XY son gratuitas, y todas las versiones adicionales están disponibles en licencias basadas en suscripción).

PD: También podría haber mencionado IceFaces (que usé y me encantó mucho en la era JSF 1.1 / 1.2, ya que era la verdadera reina de los componentes JSF y trajo muchas innovaciones en el campo de las actualizaciones automáticas de páginas para JSF, pero dado que en los últimos años también se desvaneció, y como no había conexión con la pregunta, la salté.

Proyecto RichFaces Proporciona un marco de componentes de interfaz de usuario avanzado para integrar fácilmente las capacidades de Ajax en aplicaciones comerciales utilizando JSF. Es de código abierto . Está diseñado y desarrollado por Jboss .

JavaTpoin t lanzó un tutorial de Richfaces para principiantes y profesionales con preguntas de entrevista .

Nuestro Tutorial de Richfaces incluye todos los temas de RichFaces como RichFaces con características, configuración, aplicación, conceptos básicos, arquitectura, envío de solicitud ajax, procesamiento de árbol parcial, actualizaciones de vista parcial, descripción general del componente, a4j: log, a4j: ajax, a4j: param, a4j : commandbutton, a4j: commandlink, a4j: outputpanel, skinning and theing, rich: autocomplete, rich: fileupload, rich: select, rich: list, rich: panel, rich: datascroller, rich: dropdownmenu, rich: message, rich: messages , rico: barra de progreso, rico: información sobre herramientas, etc.

RichFaces es una de las muchas implementaciones de JavaServer Faces, que es una especificación MVC utilizada para crear aplicaciones web basadas en componentes. Usando la especificación JSF, RichFaces tiene un conjunto de etiquetas junto con un espacio de nombres que se puede utilizar dentro de la vista, generalmente un archivo .xhtml donde las propiedades de Java Bean se pueden “asignar” a la lógica del controlador de fondo. Según su sitio, parece que RichFaces ha llegado a EOL (RichFaces – JBoss Community).