轉載自:https://www.cnblogs.com/Renyi-Fan/p/7847738.html
-
清晰的角色划分:控制器(controller)、驗證器(validator)、命令對象(command obect)、表單對象(form object)、模型對象(model object)、Servlet分發器(DispatcherServlet)、處理器映射(handler mapping)、試圖解析器(view resoler)等等。每一個角色都可以由一個專門的對象來實現。
-
強大而直接的配置方式:將框架類和應用程序類都能作為JavaBean配置,支持跨多個context的引用,例如,在web控制器中對業務對象和驗證器validator)的引用。
-
可適配、非侵入:可以根據不同的應用場景,選擇何事的控制器子類(simple型、command型、from型、wizard型、multi-action型或者自定義),而不是一個單一控制器(比如Action/ActionForm)繼承。
-
可重用的業務代碼:可以使用現有的業務對象作為命令或表單對象,而不需要去擴展某個特定框架的基類。
-
可定制的綁定(binding)和驗證(validation):比如將類型不匹配作為應用級的驗證錯誤,這可以保證錯誤的值。再比如本地化的日期和數字綁定等等。在其他某些框架中,你只能使用字符串表單對象,需要手動解析它並轉換到業務對象。
-
可定制的handler mapping和view resolution:Spring提供從最簡單的URL映射,到復雜的、專用的定制策略。與某些web MVC框架強制開發人員使用單一特定技術相比,Spring顯得更加靈活。
-
靈活的model轉換:在Springweb框架中,使用基於Map的鍵/值對來達到輕易的與各種視圖技術集成。
-
可定制的本地化和主題(theme)解析:支持在JSP中可選擇地使用Spring標簽庫、支持JSTL、支持Velocity(不需要額外的中間層)等等。
-
簡單而強大的JSP標簽庫(Spring Tag Library):支持包括諸如數據綁定和主題(theme)之類的許多功能。他提供在標記方面的最大靈活性。
-
JSP表單標簽庫:在Spring2.0中引入的表單標簽庫,使用在JSP編寫表單更加容易。
-
Spring Bean的生命周期可以被限制在當前的HTTp Request或者HTTp Session。准確的說,這並非Spring MVC框架本身特性,而應歸屬於Spring MVC使用的WebApplicationContext容器。