全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-18 7 分钟 ✍️ juanwangdev

数据响应:Model、ModelMap、Map

SpringMVC提供多种方式向视图传递数据,三种方式本质相同。

Model方式

Model是Spring提供的接口,用于存储模型数据。

Java
@Controller
public class DemoController {

    @RequestMapping("/model")
    public String model(Model model) {
        model.addAttribute("msg", "Hello Model");
        model.addAttribute("user", new User(1, "张三"));
        return "success";
    }
}

ModelMap方式

ModelMap继承LinkedHashMap,具有Map的全部功能。

Java
@Controller
public class DemoController {

    @RequestMapping("/modelMap")
    public String modelMap(ModelMap modelMap) {
        modelMap.addAttribute("msg", "Hello ModelMap");
        modelMap.put("count", 100);
        return "success";
    }
}

Map方式

直接使用Map接口接收数据。

Java
@Controller
public class DemoController {

    @RequestMapping("/map")
    public String map(Map<String, Object> map) {
        map.put("msg", "Hello Map");
        map.put("list", Arrays.asList("A", "B", "C"));
        return "success";
    }
}

三者对比

类型继承关系特点
Model接口轻量级,方法简洁
ModelMap继承LinkedHashMap兼具Map功能
Map标准接口最通用形式

三种方式底层实现相同,数据最终存入request域,视图可直接通过key获取。

要点总结

  • Model、ModelMap、Map本质相同,底层都是向request域存数据
  • Model:Spring接口,使用最广泛
  • ModelMap:继承Map,功能更丰富
  • Map:标准接口,通用性强
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 ResponseBody返回JSON
下一篇 → Spring MVC @Controller注解
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码