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表达式调用
在这里插入图片描述
在这里插入图片描述

结果

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

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

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

发布了101 篇原创文章 · 获赞 3 · 访问量 2232

猜你喜欢

转载自blog.csdn.net/S_Tian/article/details/104505735