1. 程式人生 > >SpringMVC控制器方法參數傳入的ModelMap 和Model類型有啥區別

SpringMVC控制器方法參數傳入的ModelMap 和Model類型有啥區別

添加 nbsp modem 參考 添加數據 jsb hashmap cnblogs sso

參考

http://blog.csdn.net/u013067598/article/details/69372309

http://blog.csdn.net/u013686993/article/details/52932079

技術分享圖片

可見最終傳入的是ExtendedModelMap ,它繼承了ModelMap ,實現了Model接口,

ModelMap又繼承自HashMap

Model接口的方法

技術分享圖片

ModeMap類的方法:

技術分享圖片

ExtendedModelMap類的方法:

技術分享圖片

可見ExtendedModelMap的方法跟ModelMap都一樣,並麽有增加什麽,估計是功能增強了吧。

而從ModelMap開始由於繼承了HaspMap所以多了很多Map的方法

Model接口就是主要定義了往模型中添加數據的幾個方法。

所以參數類型寫ModelMap和Model都沒錯,寫成Map也能用,甚至還可以寫成ExtendedModelMap。

如果只是讀取模型裏的數據的話寫成Map類型也行,有get方法就夠了,失去了Moel接口的addAttribute添加模型數據的方法。

如果只是往模型裏寫入數據的話,寫個Model類型參數就足夠了,能addAttribute就行,不需要HaspMap的get方法。

當然實際用的話誰還去想那麽細呢,搞個ModelMap讀寫都能行就成了!

SpringMVC控制器方法參數傳入的ModelMap 和Model類型有啥區別