标签: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;
标签:ssi 种类 strong style 实现类 str types info sts
原文地址:https://www.cnblogs.com/yanl55555/p/11906467.html