数据输出 --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
* */

 

 

 

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值