当前位置: 首页 > article >正文

【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作用域中的数据。


http://www.kler.cn/a/590501.html

相关文章:

  • Qt QML解决SVG图片显示模糊的问题
  • @RequestBody注解解释
  • 服务创造未来 东隆科技携多款产品亮相慕尼黑
  • 【网络协议】基于UDP的可靠协议:KCP
  • Git 使用指南
  • 【多线程】单例模式
  • Unity学习之Shader总结(一)
  • Docker入门篇2:查看容器、运行容器、启动和停止容器、删除容器
  • Android PC 要来了?Android 16 Beta3 出现 Enable desktop experience features 选项
  • 【STM32】NVIC(嵌套向量中断控制器)
  • Android之RecyclerView列表拖动排序
  • Vue3项目白屏问题深度解析:从AI辅助诊断到性能优化实战
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(49)万鸦壶焚网络 - 网络延迟时间(Bellman-Ford)
  • Spring boot+mybatis的批量删除
  • 【AI】深度学习与人工智能应用案例详解
  • LIMS系统在纸制品制造的应用 内检实验室LIMS系统提升纸制品质控
  • Postman发送GET请求示例及注意事项
  • Vue.js 事件处理与修饰符详解
  • 2. qt写带有槽的登录界面(c++)
  • 玩转python:通俗易懂掌握高级数据结构-collections模块之UserDict