springmvc---B站学习04,数据输出

springmvc—B站学习04

数据输出:如何将数据带出给页面

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

方式一:

	可以在方法处传入一个Map,Model,ModelMap作为参数,给这些参数里面保存的所有数据都会放在==请求域==中,在页面可以获取。
	
	Map,Model,ModelMap,这三个最终都是BindingAwareModelMap在工作,相当于给BindingAwareModelMap中保存的东西都会放在请求域中
	
	Map,Model是接口类型,Map是jdk的接口,Model是Spring中的接口,ModelMap是一个类,
	但是ModelMap继承了LinkedHashMap,所以说ModelMap是在Map旗下的,
	但是这三个都用的是BindingAwareModelMap,我们看BindingAwareModelMap源码,
	发现BindingAwareModelMap继承ExtendModelMap,
	但是ExtendModelMap继承ModelMap,实现Model

在这里插入图片描述
例:

@RequestMapping("/list") 
public String list(Model model){
	model.addAttribute("msg","你好");
	return "page";
}

方式二:
方法的返回值可以变成ModelAndView,这个既包含视图信息(页面地址),也包含模型数据(给页面带的数据),而且数据是放在请求域中的,返回值是ModelAndView,可以为页面携带数据

方式三:
SpringMvc提供了一种给session域中保存数据的方式 (这个信息如果需要一直访问的话就最好存入session中) ,使用一个注解@SessionAttributes,但一般不推荐,真想存数据还是使用原生API比较好,因为可控

@SessionAttributes:
		1.标在类上
		
		2.@SessionAttributes(value="msg")表示给BindingAwareModelMap或者ModelAndView中保存的数据,同时也给session中放一份
		其中value指的是,保存key是msg的数据放入到session中
		
		3.属性:
			value="msg"  表示只保存key是msg的数据,给session中也放一份
			type={ String.class }  表示只保存这种类型的数据,给session中也放一份

@ModelAttibute原理

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值