SpringMVC控制器方法参数传入的ModelMap 和Model类型有啥区别

参考

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。

如果只是往模型里写入数据的话,写个Model类型参数就足够了,能addAttribute就行,不需要HaspMap的get方法。

当然实际用的话谁还去想那么细呢,搞个ModelMap读写都能行就成了!

另外测试用HashMap类型的put设置模型数据视图里也能读取,Model接口的addAttribute估计是为了更直观吧。

原文地址:https://www.cnblogs.com/coolzdp/p/8028445.html