JSF no tiene buena prensa y mala reputación desafortunadamente está justificada (una oportunidad más perdida por los últimos Sun Microsystems). Pero, PERO muchas cosas han cambiado desde que se hizo la pregunta: se lanzó la nueva versión de JSF 2.0.
Entonces, ¿qué pasaba con JSF 1.X, qué lo hacía tan irónico en comparación con Stripes, Spring MVC o Wicket, Play, Click, etc.?
- Sólo las peticiones POST fueron apoyados, lo que causó problemas de desempeño (las peticiones GET pueden almacenar en caché de manera efectiva), difícil de lograr URL bookmarkable y más
- JSF 1.X se basa en las páginas JSP, que no estaban eran adecuados para manejar el ciclo de vida de la página JSF más complicado
- La creación de componentes era difícil y engorrosa.
- Definición de reglas de navegación estaba lejos de
- configuración XML obligatoria flexible y muy prolijo
- método no gestión de recursos limpios
Lo bueno es que todos estos defectos fueron abordadas por la nueva versión JSF.
- Las solicitudes GET y POST son igualmente compatibles.
- La configuración se puede realizar con la ayuda de anotaciones (podemos seguir con XML donde sea mejor solución), las definiciones de reglas de navegación se simplifican, incluso podemos usar convenciones sobre el enfoque de configuración.
- La creación de componentes es fácil.
- Hay nuevos y muy útiles ámbitos de componentes: alcance de vista y alcance de flash (similar al conocido de Ruby on Rails) que permite a los usuarios manejar flujos más complicados.
- Hay método de gestión de recursos estándar y una mejor facilidad de manejo de errores
- Podemos definir las etapas del proyecto para facilitar el manejo de proyectos en diversos entornos (ensayo, producción, etc.)
- Facelets basados XHTML reemplazados JSP como mucho mejor definición de la vista alternativa
- AJAX incorporado solicitudes de soporte
- JSF es una parte del estándar Java EE, lo que significa que no van a desaparecer de la noche a la mañana si los desarrolladores aburridos deciden pasar al siguiente marco brillante y más de moda.
Y la última gran ventaja de JSF 2.X: tonos de componentes listos para usar, bien diseñados, de buen aspecto y de buen rendimiento (RichFaces, PrimeFaces, ICEFaces). Estas bibliotecas proporcionan cientos de componentes de páginas que se utilizan habitualmente en las páginas web que están disponibles sin escribir una sola línea de JavaScript o CSS. Eso es un gran aumento de productividad.
Aún así, JSF puede tener problemas de rendimiento en comparación con marcos basados en acciones como Stripes, que trabajan más de cerca con solicitudes HTTP, sin construir el modelo de componentes (que usa más memoria, más ancho de banda de red).
Pero para una aplicación que no tiene por qué ser extremadamente eficiente, JSF 2.0 es una opción muy buena y racional. La curva de aprendizaje ya no es tan empinada como lo fue, además de la capacidad de reutilizar los componentes existentes lo hace realmente atractivo. Desde ese punto de vista, Stripes no es tan atractivo.
Así, por ejemplo, para una aplicación corporativa de intranet utilizada por 2000 empleados JSF 2.0 sería una gran opción.
+1 Estoy muy de acuerdo con todos estos puntos (especialmente los documentos). Me sorprendió lo buenos que son, ya que gran parte de los documentos de herramientas de código abierto dejan mucho que desear, ¡el libro de cocina de rayas es increíble!) (¡mi experiencia con la comunidad de stripes fue menos rápida!) –
@James Buen punto, la percepción de la velocidad es de alguna manera subjetiva y he actualizado mi respuesta. –
¡Las rayas son solo rocas! Es el framework MVC más elegante que no necesita una configuración XML complicada. No tiene una curva de aprendizaje empinada, ofrece enlaces de SEO amigables y es increíblemente rápido. – Kdeveloper