全部学科
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:标准接口,通用性强

📝 发现内容有误?点击此处直接编辑

← 上一篇 控制器返回String
下一篇 → 转发与重定向
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库