Struts2與SpringMVC的區別


1.Struts2是類級別上的攔截,一個類對應一個request上下文,SpringMVC是方法級別的攔截,一個方法對應一個request上下文。而且Struts過濾后是去Struts配置文件中找Action,而SpringMVC過濾后是去controller中找對應於@RequestMapping注解的url綁定的方法,

從這里看Struts用起來更麻煩,因為你要每個類的請求你都要配置對應的攔截器 如:

1 <struts>
2    <package name="loginpackage"  namespace="/sys"  extends="struts-default" >
3    <action name="login_*"   class="com.tax.action.LoginAction"  method="{1}"  >
4    <result name="mainUI" >/mainUI.jsp</result>
5    <result name="loginUI" >/loginUI.jsp</result>
6    </action>
7    </package>
8 </struts>

而SpringMVC的話:

1     @RequestMapping("api/fleet/delete")
2     @ResponseBody
3     public ReturnResult delete(FleetParam param, String userId) {
4         return fleetService.delete(param, userId);
5     }

2.也因為攔截器原因,導致Struts2的action比較亂,因為它要定義屬性來獲取請求中參數的數據,而屬性在一個類的方法間是共享的(方法間不能獨享request、response數據),所以會有點亂。而SpringMVC中請求參數與controller中方法的形參自動配對(在名字相同,或請求參數與形參的屬性名相同,或通過@RequestParam注解指定條件下會自動將請求參數的值賦給形參)方法間可以獨享request、response數據。

從這點來看,你會發現Struts2的Action看上去有點亂,而SpringMVC的Controller會更簡單明了。

3.SpringMVC集成了Ajax,使用非常方便,只需一個注解@ResponseBody就可以實現,然后直接返回響應文本即可,而Struts2攔截器集成了Ajax,在Action中處理時一般必須安裝插件或者自己寫代碼集成進去,使用起來也相對不方便。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM