Model、ModelMap和ModelAndView的使用详解

1.前言
最近SSM框架开发web项目,用得比较火热。spring-MVC肯定用过,在请求处理方法可出现和返回的参数类型中,最重要就是Model和ModelAndView了,对于MVC框架,控制器Controller执行业务逻辑,用于产生模型数据Model,而视图View用于渲染模型数据。 
使用Model和ModelAndView这两个类在spring的视图解析时作用以及区别。 
这两者之间有着很大的区别,具体就表现在Model只是用来传输数据的,并不会进行业务的寻址。ModelAndView 却是可以进行业务寻址的,就是设置对应的要请求的静态文件,这里的静态文件指的是类似jsp的文件。 
其次,两者还有一个最大的区别,那就是Model是每一次请求可以自动创建,但是ModelAndView 是需要我们自己去new的。

2.model方法
注意:如果在控制层上的方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。 
Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。

public class ExtendedModelMap extends ModelMap implements Model

一般来说,可以用model来接收各种类型的数据,如果使用来接收一组数据List 》》那么这个时候的model实际上是ModelMap。

3.ModelMap方法
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可, 
他的作用类似于request对象的setAttribute方法的作用: 用来在一个请求过程中传递处理的数据。 
ModelMap或者Model通过addAttribute方法向页面传递参数. 
其中addAttribute方法参数有多种方式: 
常用的有:写在java代码中
 

posted @ 2019-08-09 10:31  毛兔dimples  阅读(10)  评论(0编辑  收藏  举报