standard - Java-EE: alternativas más limpias y simples a JSF
oracle java (6)
Estamos empezando a desarrollar una aplicación web con Java EE 6.
Nos sorprendió la complejidad del HTML generado por JSF. Quiero decir que incluso un simple enlace tiene algún código de manejo de JavaScript. y esto es, en mi opinión, un problema de usabilidad porque los gestos del navegador (como "ctrl + clic" sobre un enlace) simplemente no funcionan. Además, sospecho que esto podría empeorar cuando necesitemos mantener ese código o modificar el diseño de la interfaz de usuario con frameworks de JavaScript como jQuery. me vuelve a armar: Webforms vs ASP.Net MVC. complejidad contra simplicidad.
De todos modos, esta es mi primera vez con JSF. así que realmente me gustaría leer sus experiencias con él.
¿Conoces un motor de renderizado más simple para Java EE?
¿Cómo ha sido su experiencia de desarrollo con JSF?
¿Has desarrollado una aplicación web usando JSF y un montón de jQuery / Dojo / Script.aculo.us?
¿Conoces un motor de renderizado más simple para Java EE?
JSF es la tecnología más poderosa para la capa de presentación en la corriente principal de Java EE. Eso se hizo realidad solo después de la introducción de los "Componentes Compuestos". Sin embargo, la solución HybridJava menos conocida no es menos poderosa pero más simple que JSF.
¿Realmente necesita un marco basado en componentes como JSF o está buscando un marco MVC más tradicional basado en solicitudes web? Si es así, puede consultar Apache Struts2 o Spring MVC . Spring MVC requiere que use la biblioteca principal de Spring.
Eche un vistazo a ReXSL , que es más simple que JSF y mucho más comprobable. Y es MVC.
Es difícil definir qué significa "simple" cuando pregunta por un "motor de representación más simple". JSF es un animal muy único y me temo que no hay nada más simple que también sea similar en el mundo de Java.
Mi experiencia con JSF ha sido EXTREMADAMENTE positiva, y esto viene de alguien con años de experiencia desarrollando ASP.NET. La curva de aprendizaje sigue siendo empinada, y no puedo imaginar que los sistemas empresariales complejos sean posibles sin algún tipo de JavaScript personalizado e incluso componentes personalizados, sin embargo, en mi opinión, es más simple que ASP.NET y mucho menos pesado también. Abordaron muchos de los problemas que hacían que ASP.NET fuera tan difícil de trabajar, (por ejemplo, identificadores simples de clientes para el cumplimiento DOM, XHTML).
Hace poco desarrollé una aplicación que se lanzará próximamente a producción con solo componentes Primefaces, facelets estándar de Mojarra, un componente personalizado y un puñado de soluciones de campo de entrada oculta / JavaScript para errores de estructura del componente. Fue sorprendentemente fácil, aparte de las pocas soluciones que necesitaba implementar. Estoy muy contento con los resultados, las partes interesadas LO AMAN y lo usaré de nuevo en mi próximo proyecto.
Al formular un equipo, mis experiencias en el mundo real me dicen que lo mejor es poner a un desarrollador de aplicaciones web con mucha experiencia como líder en el proyecto, alguien con una experiencia excelente en las tecnologías web Javascript, CSS y Java. El resto del equipo podría ser un desarrollador de nivel de entrada con un mínimo de orientación.
He estado trabajando con JSF en un gran proyecto. Tengo experiencia trabajando con JQuery, HTML / css / javascript, GWT y Gxt normales. Y puedo decirles que JSF es el peor del grupo. Si le gusta que su código de fondo esté separado e independiente de su código de front-end, entonces JSP no es el camino a seguir. Esto ata su front-end a su back-end sin una clara separación de preocupaciones. El otro problema con JSF es que es muy difícil entenderlo. Crear páginas geniales de AJAX al usar tecnología frontend (por ejemplo, javascript, html y css) es muy fácil. Mi hijo de 14 años se enseña cómo hacerlo en la escuela. Obtener el mismo efecto usando JSF es increíblemente complicado. Eche un vistazo a cómo definir como enlace: <h:commandLink value="New" immediate="true" action="#{projectUiService.showProjectCreate}" />
. Y no hay forma de especificar una url de acción de formulario. Debe usar los beans gestionados de JSF y la semántica de navegación. Es un lenguaje de usuario completamente nuevo. Así que, aunque quieras estilizar el front-end o agregar JQuery, te rellenarán.
Configurar su compilación y el entorno de ejecución también es un problema. Hay tantas interdependencias entre los archivos jar que si no tiene la combinación correcta de JSF, Richfaces y Spring Jars, entonces no tiene ninguna esperanza de obtener su aplicación incluso fuera del entorno de compilación. Si desea obtener una pista sobre esto, vaya al sitio de búsqueda de maven y busque la clase javax.faces.component.UIViewRoot
. Todos y su perro lo tiene. También tome nota en javax.faces y com.sun.faces: ¿cuál es la diferencia? Quién sabe, pero no trabajan juntos. Y algunas versiones solo funcionan con la versión específica de RichFaces.
Mi consejo: mantente bien claro. Dele a su aplicación un back-end de primavera y un front-end HTML normal. No hay forma de que pueda escribir una aplicación decente para una gran empresa en JSF. Sería demasiado complicado. Terminará con una gran base de código monolítico que sería casi imposible de mantener.
He estado trabajando con JSF durante 3 años y puedo decir que lo más poderoso es que abstrae la comunicación entre el navegador (formulario de entrada o acciones) solicitud HTTP y Java.
Existen abundantes bibliotecas disponibles para JSF, como: ICEfaces, RichFaces, ADF Faces, PrimeFaces, que le ofrece una gran cantidad de componentes ricos que pueden ser suficientes para usted.
JSF intenta hacer el desarrollo de aplicaciones web más cerca de las aplicaciones de escritorio. Aborda las tareas más comunes para una aplicación web (sin importar la tecnología) y las automatiza utilizando su LifeCycle.
Sin embargo, si en algunos casos desea un comportamiento diferente al de un componente, debe realizar algunas soluciones o crear sus propios componentes (que pueden ser difíciles, excepto para los componentes compuestos).
He integrado JS con éxito para tareas que no necesitan desencadenar alguna acción en Java, como seleccionar todas las casillas de verificación, ocultar / mostrar algunas partes de la página, etc.
JSF es muy fácil, pero muy poderoso, y requiere cierta experiencia para algunas tareas.
La última versión de JSF, 2.0, aborda los problemas comunes que tenía JSF, debido a su naturaleza POST, por lo que ahora estoy muy contento con ella.
En cuanto a los gestos de los usuarios como ctrl + clic, la forma en que las aplicaciones web en JSF funcionan es un poco diferente de las normales, los botones Atrás, Adelante, Actualizar pueden no funcionar como se espera a veces. Pero bueno, las aplicaciones web geniales tienen el mismo comportamiento: prueba Ctrl + clic en PayPal ... o prueba el botón Atrás en Vodafone.ro
Si desea un control total sobre su HTML, use JSP simple. Pero cuando tienes una gran aplicación web, JSF es una buena opción para el desarrollo rápido de aplicaciones (RAD).