数据输出 --Model、Map和ModelMap

SpringMVC向页面携带数据

除了使用原生API外(在方法上传入request、session等),我们还可以通过其他方法将数据带给页面。

可以在方法处传入Map或者Model或者ModelMap,这些参数里保存的数据,都会放在域中,可以在页面获取。


目录

1、Map

2、Model

3、ModelMap

4、总结


1、Map

@RequestMapping(value = "/handle04")
    public String handle04(Map<String,Object> map){
        map.put("msg","你好");
        return "result";
    }
<body>
    pageContext:${pageScope.msg}<br>
    request:${requestScope.msg}<br>
    session:${sessionScope.msg}<br>
    application:${applicationScope.msg}<br>
</body>

结果:

说明:Map的信息会放在request域中


2、Model

是Spring framework下的接口。

@RequestMapping(value = "/handle05")
    public String handle05(Model model){
       model.addAttribute("msg","这好吗?");
        return "result";
    }

结果:

说明:Model的信息也会放在request域中


3、ModelMap

    @RequestMapping(value = "/handle06")
    public String handle06(ModelMap modelMap){
        modelMap.addAttribute("msg","来偷袭");
        return "result";
    }

说明:ModelMap的信息也会放在request域中


4、总结

共同点:

1、Map、Model、ModelMap的数据都会传给请求域requestScope

2、最终实现类相同:org.springframework.validation.support.BindingAwareModelMap

相当于给BindingAwareModelMap中保存的数据都会请求域中

 

区别:

1、关系

  • Map(interface  jdk)
  • Model(interface  spring)
  • ModelMap(class  extends LinkedHashMap)
  • BindingAwareModelMap(class extends ExtendedModelMap)
  •                                                                ExtendedModelMap \succextends ModelMap implements  Model
/*
     Map(interface(jdk))                  Model(interface(spring))
*           ||                                //
*           ||extends                        //
*           \/                              //implements
*       ModelMap(class)                    //
*                    \\                   //
*                     \\extends          //
*                       ExtendedModelMap
*                               ||
*                               ||extends
*                               \/
*                       BindingAwareModelMap
* */

猜你喜欢

转载自blog.csdn.net/weixin_44134725/article/details/112161566
今日推荐