2011-12-20 49 views
5

這真是一個普遍的問題。Spring MVC Struts混合

我有一個電子商務Web應用程序,我約4年前建立獨奏。當時,我決定使用Struts作爲我的mvc框架。隨着多年工作在其他項目上的工作,我開始欣賞並感受Spring MVC提供的功能集和靈活性。

服務層是堅實的,並且是使用spring框架構建的。

我想重構我目前的web層,現在使用Spring MVC。但正如我前面提到的,我寫了應用程序獨奏,它更像是一個側面項目。重要的是我沒有時間,也不想冒風險和從頭開始完全重新設計web層。

所以我問社區他們的策略是什麼,這個重構工作?理想情況下,我想一次處理幾件,最終混合這兩種技術,直到最終我可以完全關閉Struts爲止。

我的網站的所有新功能最好在Spring MVC中開發。

好的是,我現有的視圖,目前使用的Apache瓷磚,不會有太大的變化,除了刪除struts標籤庫,並用Spring MVC取代它們。

我想保留的一個要求是URL不應該改變。

換句話說,ActionServlet和DispatcherServlet將不得不映射到單獨的路徑,但以某種方式轉到不同的實現。

例如,我怎麼能說mysite.com/show-product映射到Spring Dispatcher servlet,但mysite.com/show-category映射到Struts動作servlet。

您的想法值得讚賞。

回答

1

您可以使用適當的映射在同一個容器中運行它們。

我不明白這個問題:「我應該將動作類轉換爲一個一個的控制器嗎?」,你會怎麼做?

一個動作類是否應該映射到控制器的一個方法,與現有應用程序的組織結構相比,至少應該如何組織Spring應用程序。

+0

是的,我明白你的意思有關轉換動作類去春來控制器,我想這不是真的有道理......我很抱歉產生混淆......關於在同一個容器中運行它們,如果我有要求URL不應該改變的情況......有沒有辦法解決它?換句話說,ActionServlet和DispatcherServlet將不得不映射到單獨的路徑嗎?我必須有鏈接http://www.mysite.com/show-product(struts)和www.mysite.com/2.0/show-product(spring mvc)對嗎? –

+0

@RoyKachouh取決於;這使得它更有問題,因爲您需要選擇性地禁用S2請求處理。這可能來自S2.1.mumble。雖然我不確定攔截器的機制是什麼,但是沒有考慮到它,你可能可以使用自定義過濾器或者使用攔截器。 –

+0

你能找到一些解決方案嗎? – abhi