2011-09-22 14 views
29

Estoy en la fase de "selección de tecnologías" de una aplicación web pequeña, de una sola página, que estará fuertemente basada en AJAX y que informará a un backend de Java.Componentes de Spring MVC & UI

En una pregunta anterior que publiqué hace varias semanas, la comunidad de SO en general creía firmemente que me iría mejor con una aplicación web basada en Spring MVC que con algo en JSF. Dado que Spring está orientado a solicitudes y JSF está orientado a componentes, tendría sentido utilizar Spring para algo que va a obtener mucho de solicitudes asincrónicas.

Si fueron tomar la ruta de JSF, entonces mi siguiente serie de decisiones sería si debe o no utilizar las denominadas bibliotecas de componentes de interfaz de usuario para la tecnología de visión, tales como PrimeFaces, IceFaces o MyFaces.

Entonces, me pregunto: ¿Spring MVC tiene algo similar a, digamos, PrimeFaces (o sus "me gusta") para crear el componente de vista para mi página (s)? Sé que no está basado en componentes, pero no estoy muy familiarizado con la plataforma web de Spring MVC y me preguntaba cuáles son algunos de los estándares de facto (si corresponde) o los típicos apilamientos tecnológicos que los desarrolladores web de Spring usan para construir buenas páginas web .

Y, si Spring solo usa motores de plantillas run-o-the-mill, ¿sería suficiente algo así como Freemarker?

Supongo que esta es una pregunta de tipo "mejores prácticas" para un desarrollador web en ciernes de Spring.

¡Gracias de antemano!

Respuesta

19

Normalmente, el valor de los llamados componentes de la interfaz de usuario radica en cómo realizar un seguimiento de las interacciones del usuario en el lado del servidor mediante la integración con un marco de estado.

Dado que ha decidido ir a un marco de trabajo orientado a solicitudes, tendría más sentido utilizar algunas conocidas bibliotecas de JavaScript del lado del cliente. Las opciones populares incluyen:

Personalmente, si no necesito muchos widgets precompilados estándar, me gusta Backbone.js + underscore.js + jQuery. No me gusta Google Web Toolkit, ya que se siente como escribir un pidgin JavaScript, y en ese punto prefiero escribir JavaScript directamente.

+0

¡Estupendo! Gracias @Ludo! – IAmYourFaja

+0

El enlace de la columna vertebral está roto – Snickers3192

6

Sí, JSF está orientado a componentes y Spring MVC está orientado a solicitudes. te recomiendo echar un vistazo a Motor de plantillas thymeleaf, que es un reemplazo completo de JSP motor .... thymeleaf Las características son:

  • Permite plantillas natural.
  • soporte HTML5
  • Superior sistema mediante la tecnología de almacenamiento en caché de memoria

Click here for more

0

Además, aparte de las cosas mencionadas por Ludovico Fischer, si tenemos en cuenta la misma pregunta ahora es un mundo de la tecnología día de lo que puedes usar una de las cosas más poderosas del mundo reciente: Angular. Hay 2 escenarios de muestra.

  1. Si su arquitectura es del lado del cliente completo: la integración es muy natural para ello. Spring MVC expone su servicio como REST (JSON/XMl ...) y su aplicación cliente con Angular JS consume su JSON. Aquí la aplicación war (Spring mvc) debe desplegarse en un Servlet Container (Tomcat) y su aplicación cliente puede implementarse en el mismo servidor o en otro servidor Nginx, Apache, etc.
  2. Si desea mantener la página generación en el lado del servidor y solo use AngularJS para una buena manipulación de DOM para que su código se implemente en la misma guerra (WEB-INF). Mezclar los dos enfoques no siempre es una buena idea. Puede intentar thymeleaf para permanecer en la generación de la página del lado del servidor.

    Así, de esta manera, puede tener simultáneamente las características geniales de la plantilla angular, la capacidad de prueba y el código de vista limpia.

0

Aquí es otro enfoque (No JSF) para dejar Spring MVC para trabajar con componentes de interfaz de usuario ZK - Rich Web Application with Spring MVC CRUD Demo

En ese artículo, se utiliza el controlador Spring MVC para comunicarse con los componentes de interfaz de usuario ZK. (todo en código de Java)