SPRING框架中ModelAndView、Model、ModelMap区别

注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。

首先介绍ModelMap[Model]和ModelAndView的作用

Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。 ModelMap ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数: addAttribute(String key,Object value); 在页面上可以通过el变量方式$key或者bboss的一系列数据展示标签获取并展示modelmap中的数据。 modelmap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的返回值来设置跳转url地址别名或者物理跳转地址。 ModelAndView ModelAndView对象有两个作用: 作用一 设置转向地址,如下所示(这也是ModelAndView和ModelMap的主要区别) ModelAndView view = new ModelAndView("path:ok"); 作用二 用于传递控制方法处理结果数据到结果页面,也就是说我们把需要在结果页面上需要的数据放到ModelAndView对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数: addObject(String key,Object value); 在页面上可以通过el变量方式$key或者bboss的一系列数据展示标签获取并展示ModelAndView中的数据。 作用介绍完了后,接下来介绍使用方法 ModelMap ModelMap的实例是由bboss mvc框架自动创建并作为控制器方法参数传入,用户无需自己创建。

public String xxxxmethod(String someparam,ModelMap model)
{
     //省略方法处理逻辑若干
      //将数据放置到ModelMap对象model中,第二个参数可以是任何java类型
      model.addAttribute("key",someparam);
     ......
     //返回跳转地址
      return "path:handleok";
}

ModelAndView ModelAndView的实例是由用户手动创建的,这也是和ModelMap的一个区别。

public ModelAndView xxxxmethod(String someparam)
{
     //省略方法处理逻辑若干
      //构建ModelAndView实例,并设置跳转地址
      ModelAndView view = new ModelAndView("path:handleok");
      //将数据放置到ModelAndView对象view中,第二个参数可以是任何java类型
      view.addObject("key",someparam);
     ......
     //返回ModelAndView对象view
      return view;
}

到此bboss mvc中ModelMap和ModelAndView两个对象的作用和使用方法介绍完毕

如下为我自己写的测试代码

@RequestMapping(value = "/demo",method = RequestMethod.GET)
    public ModelAndView getBusinessIdListByIp(@RequestParam("ip") String ip,@RequestParam("phoneId") String phoneId,Model model){
        ModelAndView mav = new ModelAndView();
        model.addAttribute("ip", ip);
        model.addAttribute("phoneId", phoneId);
        mav.addObject(model);
        mav.setViewName("user/mav");
        return mav;
    }
    
    @RequestMapping(value = "/demo2",method = RequestMethod.GET)
    public ModelAndView getBusinessIdListByIp(){
        return new ModelAndView("user/mav","key",new String("makeHappy"));
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

Spring Boot 中文乱码问题解决方案汇总

使用 Spring Boot 开发,对外开发接口供调用,传入参数中有中文,出现中文乱码,查了好多资料,总结解决方法如下:

44610
来自专栏程序猿DD

【译】Spring 官方教程:创建批处理服务

原文:Creating a Batch Service 译者:Mr.lzc 校对:lexburner 本指南将引导你完成创建基本的批处理驱动解决方案的过程。 你...

55170
来自专栏学海无涯

Java Web之SpringMVC 进行参数绑定

学习方法 当需要学习一个新的MVC框架需要从以下方面入手: 1、环境搭建(能输出Hello Word) 2、如何传递参数到Controller,Contr...

356110
来自专栏Java 技术分享

SpringMVC(一)

20530
来自专栏Kirito的技术分享

解析Spring中的ResponseBody和RequestBody

spring,restful,前后端分离这些关键词都是大家耳熟能详的关键词了,一般spring常常需要与前端、第三方使用JSON,XML等形式进行交互,你也一定...

3.8K170
来自专栏xdecode

Spring MVC注解式开发

MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @C...

30080
来自专栏Java技术栈

Java 必看的 Spring 知识汇总!

24130
来自专栏微信公众号:Java团长

Spring Boot属性配置和使用

Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置。

13710
来自专栏java工会

Java 必看的 Spring 知识汇总!有比这更全的算我输!

22520
来自专栏程序猿DD

Spring Boot 2.0 新特性(一):配置绑定 2.0 全解析

在Spring Boot 2.0中推出了Relaxed Binding 2.0,对原有的属性绑定功能做了非常多的改进以帮助我们更容易的在Spring应用中加载和...

40140

扫码关注云+社区

领取腾讯云代金券