码迷,mamicode.com
首页 > 编程语言 > 详细

【串线篇】SpringMvc数据传出

时间:2019-11-21 17:09:31      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:ssi   种类   strong   style   实现类   str   types   info   sts   

/**

 * SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面

 *

 * 四大域:

 *  pageContext:${pageScope.msg }<br/>

       reqest:${requestScope.msg }<br/>

       session:${sessionScope.msg }-${sessionScope.haha}<br/>

       application:${applicationScope.msg }<br/>

 

需要知道一点SpringMVC在调用方法前会创建一个隐含的数据模型,作为模型数据的存储容器, 成为”隐含模型”。也就是说在每一次的前后台请求的时候会随带这一个背包,不管你用没有,这个背包确实是存在的,用来盛放我们请求交互传递的值;

 *

 * 1)、可以在方法处传入Map、或者Model或者ModelMap。

 *          给这些参数里面保存的所有数据都会放在请求域中。可以在页面获取reqest:${requestScope.msg }<br/>

 *   关系:

 *         Map,Model,ModelMap:最终都是BindingAwareModelMap在工作;

 *         相当于给BindingAwareModelMap中保存的东西都会被放在请求域中;

 *

 *          Map(interface(jdk))      Model(interface(spring)) 

 *                 ||                                               //

 *          LinkedHashMap(实现类class)                  //

 *                 ||                                          //

 *          ModelMap(class)                     //

 *                               \\                         //

 *                                \\             //

 *                               ExtendedModelMap(实现类class)

 *                                             |

 *                                             ||

 *                               BindingAwareModelMap(class)

ExtendedModelMap:

Model(org.springframework.ui.Model)
Model是一个接口,包含addAttribute方法,其实现类是ExtendedModelMap。
ExtendedModelMap继承了ModelMap类,ModelMap类实现了Map接口。

如下:

技术图片

 

 

 *

 * 2)、方法的返回值可以变为ModelAndView类型;

 *                 既包含视图信息(页面地址)也包含模型数据(给页面带的数据);

 *                 而且数据同样是放在请求域中;

 *                 request、session、application;

 *                

 * 3)、SpringMVC提供了一种可以临时给Session域中保存数据的方式;

 *   使用一个注解      @SessionAttributes(只能标在类上)

 *   @SessionAttributes(value="msg"):

 *          给BindingAwareModelMap中保存的数据,或者ModelAndView中的数据,

 *          的同时给session中放一份;

 *          value指定保存数据时要给session中放的数据的key;

 *

 *   value={"msg"}:只要保存的是这种key的数据,给Session中放一份

 *   types={String.class}:只要保存的是这种类型的数据,给Session中也放一份

 *

 *  后来推荐@SessionAttributes就别用了,可能会引发异常;

 *                 给session中放数据请使用原生API;

 

【串线篇】SpringMvc数据传出

标签:ssi   种类   strong   style   实现类   str   types   info   sts   

原文地址:https://www.cnblogs.com/yanl55555/p/11906467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!