SpringMVC中SessionAttributes注解

SessionAttributes注解:默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后,数据就失效了。如果要跨页面使用。那么需要使用到session。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。

  1. 该注解只能应用在类上
  2. 该注解用于将Map、ModelMap、Model或ModelAndView中的数据暂存到HttpSession中以使其可以在多个请求之间共用数据(不能作用于HttpServletRequest)

ModelAndView

如下,我们发现添加这个注解好像是多此一举了,因为handler方法返回值类型为ModelAndView时,其包含视图信息,也包含数据信息,但其实这里mv中的数据被存放在了request中,添加上SessionAttributes注解之后将属性名为ui的数据copy了
一份放进了session域

在这里插入图片描述

在这里插入图片描述

Model

Modelhandler方法参数列表包含Model时,handler方法只需返回视图即可,当用户发出请求,服务器执行handler方法后,Spring MVC自动将Model中的数据填充到request中。上例UserInfoController类中代码等效于如下代码:

同上 SessionAttributes注解也是将model中的属性名为ui的数据copy放入了session域中

在这里插入图片描述

ModelMap&Map

handler方法参数列表包含org.springframework.ui.ModelMap或java.uti.Map时,handler方法只需返回视图即可,Spring MVC自动将ModelMap或Map中的数据添加到模型中。

ModelMap类对象的put或者addAttribute方法都可以将控制层数据输出到显示层,并通过EL表达式调用
在这里插入图片描述
在这里插入图片描述

结果

目标页面如下
在这里插入图片描述

有注解的类 对应的显示页面:
在这里插入图片描述

没有注解的类对应的显示页面:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值