Pregunta

Estoy pensando en la posibilidad de usar Spring MVC con el marco Vaadin. ¿Hay alguna forma documentada de hacer que jueguen bien juntos? ¿También es una buena idea usarlos juntos? relativo al rendimiento; Voy a ejecutar la aplicación en un servidor dedicado.

Para que mi pregunta sea un poco más claro, ¿cómo puedo devolver un ModelAndView de un controlador MVC Spring que renderizará usando Vaadin y puede acceder a todos los datos del modelo?

¿Fue útil?

Solución

El apoyo de primavera para Vaadin es bastante nuevo, pero recientemente se ha hablado mucho sobre el foro y algunos lo han probado. Parece funcionar. Hay un artículo sobre el Vaadin Wiki al respecto, y algunos hilos en el foro que hablan sobre Vaadin + Spring Integration:

Wiki: integración de primavera
Foro: ¿Se puede integrar el kit de herramientas de la fábrica?
Foro: problema de integración de primavera
Foro: trabajando con primavera
Foro: Integración de primavera

Otros consejos

No estoy seguro si es una opción prudente integrar Vaadin con Spring MVC. Es un desperdicio. MVC está destinado a aplicaciones web típicas basadas en páginas donde como Vaadin está más ver el estado como una aplicación de escritorio. Por lo general, haría una reunión en el medio y tendría mi nivel de negocio y mi capa de acceso de datos en primavera y usaría Vaadin tal como está.

Ver este hilo en el foro de Vaadin para mi AutowiringApplicationServlet Solución, incluida una aplicación de guerra de muestra.

De acuerdo con DHRBO.

No es aconsejable usar Spring MVC, más aún con el flujo web con Vaadin. Vaadin es otro marco de aplicación web.

Si desea la idea de "Spring MVC" en su proyecto Vaadin, integre con núcleo de primavera, frijoles y contexto. De esa manera, puede obtener una separación clara entre los controladores, la interfaz de usuario (Vaadin) y los modelos (integrarse con Hibernate / Orms)

Aquí hay un artículo sobre la integración de la capa de servicio de primavera con Vaadin. No se relaciona directamente con Spring MVC de lo que se trataba la pregunta original, pero aún puede ser un puntero para otros lectores que investigan la integración de Vaadin Spring.

http://poncoding.blogspot.com/2011/03/vaadin-spring-ingration.html

org.springframework.web.servlet.mvc.ControllerEl Handlerequest toma un HttpServletRequest y HttpServletResponse como parámetros. De estos, no puede procesar el fragmento URI. Como tal, el controlador no es adecuado para controlar las solicitudes basadas en el fragmento URI.

En mi aplicación, implementé un concepto muy similar al controlador de primavera. Mi aplicación todavía tiene una noción de "vistas" y "modelo". Cada vista se implementa en una clase separada y se muestra en un bloque central de la página. Quería centralizar la lógica del procesamiento de URL a esa clase, así que creé una clase. AbstractControllerEntry:

public static abstract class AbstractControllerEntry {
    public abstract boolean matches(String fragment);
    public abstract void open(MainWindow window, String fragment);
}

con varias subclases de conveniencia como ConstantEntry, PrefixEntry y RegexEntry.

Cada clase de vista tiene un método estático, que devuelve AbstractControllerEntry. La recolección de todas las entradas se mantiene en una matriz estática dentro de MyController Clase (no un controlador MVC de primavera). Tras el cambio de fragmento (ver Urifragmentutilidad), Itero todas las entradas, y por primera vez, que coinciden, llamaré abierta. Cualquier otra lógica, como encontrar el objeto modelo, está dentro de la clase de vista, en el AbstractControllerEntry Implementación.

Además, hay otro método estático para generar el fragmento URI en la clase de vista, de modo que cada referencia a una vista sea una referencia real a una clase, esta es una solución a los enlaces rotos. Y cada vista tiene un método de instancia para obtener un fragmento para la vista actual, que se verifica para que coincida con una entrada del controlador para aumentar la robustez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top