欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 【SpringMVC】常用注解:@SessionAttributes

【SpringMVC】常用注解:@SessionAttributes

2025/3/16 17:48:35 来源:https://blog.csdn.net/L3526581402/article/details/146283623  浏览:    关键词:【SpringMVC】常用注解:@SessionAttributes

1.作用

用于多次执行控制器方法间的参数共享

2.属性

value:用于指定存入的属性名称

type:用于指定存入的数据类型

3.示例

先写JSP代码

<a href="demo1/putMethod">存入 SessionAttribute</a><br><a href="demo1/getMethod">取出 SessionAttribute</a><br><a href="demo1/cleanMethod">清除 SessionAttribute</a>

编写控制器代码

@Controller@RequestMapping("demo1")@SessionAttributes(value ={"username","password","age"})public class HelloController {@RequestMapping("putMethod")public String putMethod(Model model){model.addAttribute("username", "泰斯特");model.addAttribute("password","123456");model.addAttribute("age","admin");return "success";}@RequestMapping("getMethod")public String getMethod(ModelMap model){System.out.println(model.get("username")+";"+model.get("password")+";"+model.get("age"));return "success";}@RequestMapping("cleanMethod")public String cleanMethod(SessionStatus sessionStatus){sessionStatus.setComplete();return "success";}
}

通过Model对象的addAttribute方法来向作用域里存储数据。

这里听到作用域可能会有点蒙,下面来讲一下

Model 对象的 addAttribute 方法存储数据的作用域需结合 @SessionAttributes 注解分析:

默认请求作用域:正常情况下,Model 存储的数据会放入 请求作用域,仅在当前请求处理周期内有效。

会话作用域(因 @SessionAttributes:也叫session作用域,由于类上声明了 @SessionAttributes(value = {"username", "password", "age"}),这三个属性会额外存入 会话作用域。会话作用域的数据会跨请求保留,直到会话结束(如浏览器关闭或主动清除会话)。

因此,代码中通过 Model 存储的 usernamepasswordage 最终会存在 会话作用域 中,而若未被 @SessionAttributes 声明的属性,仍默认存于请求作用域。

然后可以用get方法从session作用域中取数据,也可以用SessionStatus类的方法去删除session作用域中的数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词