Pregunta

Vi algunos proyectos JSF desarrollados por mis colegas y estos proyectos me parecieron muy lentos. ¿Alguien tiene la misma opinión?

Actualmente estoy usando jsp + jstl y jQuery para " rich " cliente.

Me pregunto qué ventajas y desventajas tienen los marcos modernos (jsf, wicket, tapicería ...) sobre el antiguo llano jsp.

Sería fantástico si las personas que usaron todas estas tecnologías hubieran respondido.

También es interesante para mí, ya que las funciones más interesantes te hicieron abandonar jsp y usar " masivo " marco (es decir, por ejemplo, AOP en Spring o cualquier otra cosa que pueda notar).

Gracias por todos los comentarios.

¿Fue útil?

Solución

He utilizado CGI, PHP, JSP, Struts, Spring MVC (1.2), Bea taller, JSF, JBoss Seam, Spring MVC (2.5) y Wicket (en ese orden). He notado un salto tanto en productividad como en calidad para cada nueva tecnología en la que he trabajado. Simplemente funciona mejor, se siente mejor. Prefiero Wicket (con un toque de primavera, cuarzo, etc.) sobre todos los demás. Honestamente puedo decir que vi la luz y no quiero volver a un lado más oscuro, o más claro;).

Hay mucho que decir sobre Wicket.

  • El soporte conversacional (o habilitación de pestañas) viene de forma predeterminada, no te preocupes por " abrir en una nueva pestaña " y " volver " problemas con los botones nunca más.
  • Se basa en componentes, por lo que puede reutilizar el código a su vez.
  • Aprovecha una gran cantidad de Java estándar, como las maravillas de seguridad de tipo.
  • Admite funciones de seguridad avanzadas como el cifrado de URL.
  • aplicaciones agrupables de forma predeterminada.
  • Y, lo más importante, es divertido utilizar.

Hay mucho que mejorar para JSP y JSF.

  • Lo que más me molesta es el " EL " Tonterías, porque creo que rompe la buena seguridad y la fuerza del tipo Java.
  • Ambos necesitan soporte de herramientas para una alta productividad.
  • Necesitas otro marco encima de ambos para resolver realmente los problemas (como se ve con el marco de costura, lo que hace que JSF sea utilizable).
  • El manejo de errores es muy complicado y las excepciones no son muy útiles.
  • Es difícil hacer componentes reutilizables en ambos marcos y no admite un modelo adecuado para la separación de inquietudes.
  • ... y, lo más importante, un largo etc. de dolores menores, como this , o this .

Otros consejos

Me gusta totalmente usar JSP 2.0 como tecnología de plantillas, es decir, uso Spring MVC para acceder a mis objetos de dominio y preparar todos los datos que necesito para una vista determinada y dejarlos en manos de JSP para representarlos. JSP 2.0 porque me gusta usar archivos de etiquetas para la composición de plantillas, lo que me permite usar JSP 2.0 simple, donde necesitaría otros marcos de trabajo de composición.

Intencionalmente evito todo en JSP que básicamente es programación. Sin acceso a datos, sin SQL, sin scriptlets, sin métodos, sin nada. simplemente la presentación de datos preexistentes proporcionados por el controlador, tal vez algunos casos simples e iteración de colecciones.

Muchas ventajas. Puedo enumerar las ventajas de JSF que son las que he usado en mi último proyecto.

  • Lugar centralizado para la navegación (como en puntales)
  • Componentes como un selector de fecha, autocompletado, paginación, etc.
  • Tiene representaciones para el diseño que facilita mucho la lógica del diseño.
  • Disponibilidad de azulejos, como en puntales.

JSP no hace una separación clara entre la lógica de negocios y el diseño.

De todos modos, a pesar de todas estas ventajas y si usted es un programador de Java, le aconsejaría echar un vistazo a

JSP es extremadamente primitivo, básicamente no tienes widgets y tienes que construir todo tú mismo. JSF, aunque una mejora no es el mejor marco web para Java, hay muchos otros que le permiten lograr un resultado mucho más impresionante, por ejemplo, GWT.

Beneficios de Spring MVC:

  • El marco te alienta sutilmente a escribir un código mejor diseñado: mediante el uso de la inyección de dependencias y la división del diseño de tu aplicación en objetos de dominio (modelo), controladores, clases de servicio, DAO, etc.
  • Como efecto secundario del primer punto, su código termina siendo extremadamente y fácilmente comprobable por unidad.
scroll top