簡體   English   中英

從Struts 1.2遷移 - > Struts2與Spring-MVC(主要是對Struts1.2 taglib支持)

[英]Migration from Struts 1.2 -> Struts2 vs Spring-MVC (primarily vis-a-vis Struts1.2 taglib support)

主要問題:如果我的應用程序當前正在使用Struts 1.x - 並且我正在考慮遷移到用於MVC框架的EITHER Spring-MVC或Struts2 - 是否有任何一個可以更容易從Struts1.2遷移?

為了澄清,我不是在問SpringMVC或Struts2是否總體上更好(SO上有許多現有的Q來解決這個問題) - 從Struts1.2遷移到哪一個更容易。

從遷移的角度來看,我最感興趣的一點是: 在JSP頁面 中繼續 (在開始時) 繼續使用struts1.x的taglib,同時在后端更改為Struts2(或SpringMVC)的API。 (換句話說,這些框架中的任何一個都可以支持Struts1.x的taglib作為插件)嗎? [注意:這不是一個長期的解決方案 - 但會減少集成的痛苦,因為JSP不需要立即重寫。 我認為這個問題是有道理的 - 如果沒有,請說明為什么]

話雖如此,我當然對任何其他遷移優勢感興趣。


一些背景:

我正在開發一個應用程序,其MVC層是通過Struts 1.2編寫的。 我們也使用Spring IOC - 盡管該應用程序目前還沒有Struts層和Spring的DI設備之間的強大集成。 (注意:這是我們在重構時計划糾正的內容,但我的理解是通過一些規划 - 即使使用Spring IOC + Struts2組合也可以正確/有效地完成。)

作為改進/重構代碼庫的一部分 - 我們希望升級到更現代的MVC框架(以便消除對Action / Form類的需求,並在可能的情況下使用基於Annotation的配置等)但保持整體經典-MVC風格(即目前沒有興趣跳躍到JSF,Tapestry,GWT,Flex,Play等等。我明白這些是非常不同的東西 - 將它們混合在一起只是為了給出一個大致的想法..)此外,我的願望是采用具有合理牽引力/動力的東西 - 因此為此推定Stripes。 這似乎只是讓Spring-MVC和Struts2成為競爭者(盡管如果有其他類似風格和強大的行業牽引力 - 我們肯定會考慮它)

可以切換到其中任何一個都需要下降工作量 - 但計划是在模塊化水平上進行。 出於這個原因,如果其中任何一個支持Struts 1.2的taglib - 它將使切換/測試更容易(因為我們可以在新API中編寫特定模塊的“Control”實現 - 並讓第二個服務器運行舊的Struts1 .2使用相同的jsps實現.QA測試在某種程度上將是“蘋果到蘋果”。這是否有意義,或者這種方法(如果可行的話)會導致比解決更多的麻煩?

另外,如上所述,雖然我的主要問題是使用Spring-MVC或Struts2運行struts1.2的taglib - 我也對Struts2-vs-Spring-MVC的任何其他MIGRATION優勢感興趣。

如果將Strut1.2遷移到Spring MVC,如果我們在WEB-INF / lib中包含struts.jar,我們仍然可以在Spring MVC中使用strut1.2 taglib,這意味着你仍然可以使用bean:define,bean:write ..邏輯:現在,邏輯:等於...(Struts1.2 taglib)在JSP中,只有更改是struts 1.2表單taglib(html:text,html:error html:form ...)應該更改為spring form taglib( form:path,form:form,form:path,form:error ...)這樣我們就可以通過formBackObject將表單字段綁定到命令類數據,referenceData或初始化命令數據,以使用spring MVC JSP特性

我沒有在任何這些框架中看到對Struts 1 taglib的支持。

Struts2的一些小優點:有一些關於將應用程序從Struts1遷移到Struts2的官方文章 - http://struts.apache.org/2.2.3.1/docs/migration-strategies.html - http://struts.apache.org /2.2.3.1/docs/migration-tools.html

Struts2中甚至還有一個Struts1插件允許你在Struts2中運行你的動作 - http://struts.apache.org/2.2.3.1/docs/struts-1-plugin.html

不幸的是,同樣的引用說你必須轉換舊的JSP,這不是一件容易的事。

嘗試閱讀並比較以下文章:

另請參閱:stackoverflow中的“從Struts2遷移到Spring MVC”問題。

轉移到兩者基本上是相同的工作量和類型。

雖然一個Struts插件1 S2中允許使用現有的S1動作類,如注意你仍然需要重寫你的JSP文件和您的應用程序仍然會從S1的密切聯系的Servlet框架受到影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM