Frage

Ich denke über die Möglichkeit nach, Spring MVC mit Vaadin -Framework zu verwenden. Gibt es dokumentierte Möglichkeiten, sie gut zusammen zu spielen? Ist es auch eine gute Idee, sie zusammen zu verwenden? in Bezug auf die Leistung; Ich werde die App auf einem dedizierten Server ausführen.

Um meine Frage etwas klarer zu machen, wie kann ich eine ModellAndView von einem Spring MVC -Controller zurückgeben, der mit Vaadin rendert und auf alle Modelldaten zugreifen kann.

War es hilfreich?

Lösung

Die Frühlingsunterstützung für Vaadin ist ziemlich neu, aber in letzter Zeit wurde im Forum viel darüber gesprochen, und einige haben es getestet. Scheint zu funktionieren. Es gibt einen Artikel über das Vaadin Wiki und einige Fäden im Forum, in dem sich über Vaadin + Spring Integration sprechen:

Wiki: Frühlingsintegration
Forum: Kann es ein Mühlentoolkit in die Springanwendung integriert werden?
Forum: Frühlingsintegrationsproblem
Forum: Mit Frühling arbeiten
Forum: Frühlingsintegration

Andere Tipps

Ich bin mir nicht sicher, ob es eine umsichtige Wahl ist, Vaadin in Spring MVC zu integrieren. Es ist eine Verschwendung. MVC ist für typische Seiten -basierte Web -Apps gedacht, bei denen Vaadin als Desktop -App states basiert. Ich würde normalerweise ein Treffen in der Mitte durchführen und meine Geschäftsebene und Datenzugriffsschicht im Frühjahr haben und Vaadin so verwenden.

Sehen Dieser Thread im Vaadin Forum für mein AutowiringApplicationServlet Lösung, einschließlich einer Probenkriegsanwendung.

Einverstanden mit Dhrbo.

Es ist nicht ratsam, Spring MVC zu verwenden, insbesondere mit Webflow mit Vaadin. Vaadin ist ein weiteres Web-App-Framework.

Wenn Sie die Idee von "Spring MVC" in Ihrem Vaadin-Projekt möchten, integrieren Sie sie in Spring-Core, Bohnen und Kontext. Auf diese Weise können Sie eine klare Trennung zwischen Controllern, UI (Vaadin) und Modellen erhalten (in Hibernate / Orms integrieren)

Hier ist ein Artikel über die Integration der Spring Service Layer in Vaadin. Es bezieht sich nicht direkt auf den Frühlings -MVC, von dem es sich bei der ursprünglichen Frage handelte, aber es kann immer noch ein Zeiger für andere Leser sein, die die Vaadin Spring -Integration erforschen.

http://psponcoding.blogspot.com/2011/03/vaadin-Spring-integration.html

org.springframework.web.servlet.mvc.Controller'S Handlrequest nimmt eine HttpServletRequest und HttpServletResponse als Parameter. Aus diesen können Sie das URI -Fragment nicht verarbeiten. Daher ist der Controller nicht für die Kontrolle von Anforderungen basierend auf URI -Fragment geeignet.

In meiner Anwendung habe ich ein sehr ähnliches Konzept mit Spring Controller implementiert. Meine Anwendung hat immer noch einen Vorstellung von "Ansichten" und "Modell". Jede Ansicht wird in einer separaten Klasse implementiert und in einem zentralen Block der Seite angezeigt. Ich wollte die Logik der URL -Verarbeitung in dieser Klasse zentralisieren, also habe ich eine Klasse erstellt AbstractControllerEntry:

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

mit mehreren Bequemlichkeitsunterklassen wie z. ConstantEntry, PrefixEntry und RegexEntry.

Jede Ansichtsklasse hat eine statische Methode, die zurückgibt AbstractControllerEntry. Die Sammlung aller Einträge wird in einem statischen Array im Inneren von gehalten MyController Klasse (kein Feder -MVC -Controller). Nach Fragmentänderung (siehe Urifragmentutilität), Ich itere alle Einträge und zum ersten Mal, was ich übereinstimmt, werde ich aufrufen. Jede andere Logik, wie das Finden des Modellobjekts, befindet sich in der Sichtklasse, in der AbstractControllerEntry Auslöser.

Zusätzlich gibt es eine andere statische Methode, um das URI -Fragment in der View -Klasse zu erzeugen, so dass jeder Hinweis auf eine Ansicht eine echte Referenz auf eine Klasse ist. Dies ist eine Lösung für kaputte Links. Und jede Ansicht verfügt über eine Instanzmethode, um ein Fragment für die aktuelle Ansicht zu erhalten, die überprüft wird, um einem Controller -Eintrag zu entsprechen, um die Robustheit zu erhöhen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top