2009-07-26 98 views
24

我正在考慮在Vaadin框架中使用Spring MVC的可能性。有沒有任何文件記錄的方式讓他們在一起很好地玩耍?同時使用它們也是一個好主意嗎?與表演有關;我要在專用服務器上運行該應用程序。Vaadin和Spring MVC集成

爲了讓我的問題更清楚一點,我如何從Spring MVC控制器返回一個modelandview,它將使用Vaadin進行渲染並可以訪問所有模型數據。

回答

20

Vaadin對Spring的支持很新,但最近在論壇上有很多關於它的討論,並且有些已經對它進行了測試。似乎工作。有對Vaadin維基關於它的文章,並在論壇上一些線程談論Vaadin + Spring集成:

Wiki: Spring Integration
Forum: can it mill toolkit be integrated with spring application
Forum: Spring integration problem
Forum: Working with Spring
Forum: Spring Integration

+1

我參考了非常完整的SpringApplication: http://dev.vaadin.com/svn/incubator/SpringApplication/ – rochb 2010-02-12 21:13:37

+3

我還在尋找Vaadin與Spring MVC的集成。你給的答案是與Spring的集成(依賴注入等)。我沒有看到任何...謝謝 – 2010-03-08 14:20:29

2

this thread上Vaadin論壇爲我的AutowiringApplicationServlet解決方案,包括一個示例WAR應用程序。

5

不確定將vaadin與Spring MVC集成是否是一種謹慎的選擇。它是一種浪費。 MVC適用於典型的基於頁面的網絡應用程序,其中vaadin的視圖狀態更像桌面應用程序。我通常會在中間進行一次會面,並在春季使用我的業務層和數據訪問層,並按原樣使用Vaadin。

1

與dhrbo一致。

它不是明智地使用spring mvc,更適合使用帶有vaadin的webflow。 vaadin是另一個網絡應用程序框架。

如果你想在你的vaadin項目中使用「spring mvc」的想法,將它與spring-core,beans和context集成在一起。這樣你就可以在控制器,UI(vaadin)和模型(與休眠/ orms集成)之間得到清晰的分離。

0
org.springframework.web.servlet.mvc.Controller

的的handleRequest需要HttpServletRequestHttpServletResponse作爲參數。從這些,你不能處理的URI片段。因此,控制器不適合基於URI片段來控制請求。

在我的應用程序中,我實現了與Spring控制器非常相似的概念。我的應用程序仍然有「觀點」和「模型」的概念。每個視圖都在單獨的類中實現,並顯示在頁面的中央塊中。我想集中的URL的處理的邏輯的那類,所以創建了一個類AbstractControllerEntry

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

與幾個方便子類,如ConstantEntryPrefixEntryRegexEntry

每個視圖類都有一個靜態方法,返回AbstractControllerEntry。所有條目的集合都保存在MyController類(不是Spring MVC控制器)內的靜態數組中。在片段的變化(見UriFragmentUtility),我遍歷所有條目,併爲第一,它匹配,我會打電話給開。任何其他邏輯(如查找模型對象)都在視圖類的內部,在AbstractControllerEntry實現中。

Additionaly,還有另一種,以產生在視圖類的URI片段靜態方法,使每一個參照本發明的觀點是一個真正的參考一類,這是一個解決方案,斷開的鏈接。並且每個視圖都有實例方法來獲取當前視圖的片段,該視圖被檢查以匹配控制器條目以增加健壯性。