SpringMVC中ModelAndView和Model的区别

ModelAndView操作步骤:

  1. 首先是创建ModelAndView对象,再调用addObject方法

  2. 再调用setViewName方法设置jsp页面的路径,这里的地址前缀和后缀已经在web.xml文件中定义好了,可直接简写如上。如未有定义可以使用上方以注释的路径进行传入

  3. 最后返回modelAndView数据
    注:(1)返回类型为ModelAndView类型 return mv;
           (2)作用:指定返回页面; mv.setViewName("test"); (指定视图)
                  在返回指定页面的同时添加属性 mv.addObject("msg", 获取到浏览器的参数);

Model操作步骤:

  1. 在方法括号中定义Model类型 methodName(Model model)

  2. 调用addAttribute方法,参数一为给数据命名,参数二为传入上面获取到的数据 model.addAttribute("msg", 获取到浏览器的参数);

  3. 最后返回jsp页面的路径 return "test";
    注:若方法返回String类型,则要使用Model,表示返回逻辑视图名,真正视图(jsp路径)=前缀+逻辑视图名+后缀

总结:
4. 每次发起请求后springmvc会自动创建Model对象(只需要我们传入 methodName(Model model)),而ModelAndView需要我们自己创建 ModelAndView mv = new ModelAndView();
5. Model只是用来传输数据的,并不会进行业务的寻址(不能跳转页面)。而ModelAndView却是可以进行业务寻址的,就是设置对应的要请求的静态文件,这里的静态文件指的是类似jsp的文件。


补充:
(1)当你只有一个模型属性要返回时,可以在构造器中指定该属性来构造ModelAndView对象
(2)如果有不止一个属性要返回,可以先将它们传递到一个Map中再来构造ModelAndView对象
(3)也可以使用spring提供的Model或者ModelMap,这是java.util.Map实现;

Model与ModelMap都是实现了hashMap,并且用法一样;两者都是spring在请求时自动生成,拿来用便可;ModelAndView就是在两者的基础上可以指定返回页面;
赋值能力 ModelAndView > Model/ModelMap>request ;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hvk_l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值