首先說springMvc的優點
1,基於註解,stuts2雖然也有註解但是比較慢,沒人用更多的時候是用xml的形式
2,能與spring其它技術整合比如說webflow等,
3,獲取request及session對象比較簡單,直接當參數值傳入就行了,而struts2還需要通過ServletActionContext 對象獲取
4,驗證也比較簡單,通過jsr-303就能實現,而不必寫其它的代碼,而struts2是通過寫 actionName-validation.xml實現的
在說struts2的優點:
1,不必關註客戶端是get提交還是set提交,springMvc的地址映射註解method是必須要被關註的
2,自動封裝對象,springMvc,是封裝在model裏的只能在,所以會看到input框的數字類型有0或是0.0的選項
3,自定義結果類型,如xml什麽的而springmvc確只能返回modelandView,或是不返回
4,將視圖與結果解耦,因為struts2返回的是字符串,只有通過struts.xml才知道具體的是哪壹個jsp,或是html,而springMvc只能明確的返回modelAndview
5,struts2 不需要專門的中文過濾器,而springMvc3需要配置
針對標簽來說它們大同小異,但是當需要自動裝配時 springMnc的form表單是必須使用的,而struts2則不用,其它功能上差不多,但效率上,springMvc的標簽比struts2快因為,struts2通過request建立了堆和棧,所以效率上有所下降,我推薦還是用jsp自帶標簽不僅易於擴展而且,效率也不錯
再說應用場景:如果都是成功之後跳壹個頁面的那兩者都可以,而如果是其它的類型,那麽struts2是壹個不錯的選擇,舉個例子來說Extjs4.0 增加對象自動裝配struts2能實現,但springMvc就不行,除非妳喜歡大量的request.getParamter()