详解SpringBoot中@SessionAttributes的使用

 更新时间:2022年07月01日 08:21:27   作者:IT利刃出鞘  
这篇文章主要通过示例为大家详细介绍了SpringBoot中@SessionAttributes的使用,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

简介

说明

本文介绍SpringBoot中@SessionAttributes的用法。

概述

在默认情况下,ModelMap中的属性作用域是request级别,也就是说,当本次请求结束后,ModelMap 中的属性将销毁。如果希望在多个请求中共享ModelMap中的属性,必须将其属性转存到session 中,这样 ModelMap 的属性才可以被跨请求访问。

Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 @SessionAttributes 注解来实现的。

代码

后端代码

Controller

@Controller
@RequestMapping("/anno")
@SessionAttributes(value={"msg"})   // 把Mapmodel中名字为msg的属性存入到session属性列表中
public class AnnoController {
    @RequestMapping(value="/testSessionAttributes")
    public String testSessionAttributes(Model model){
        System.out.println("testSessionAttributes...");
        // 底层会存储到request域对象中
        model.addAttribute("msg","testSessionAttributes");
        return "success";
    }
 
    @RequestMapping(value="/getSessionAttributes")
    public String getSessionAttributes(ModelMap modelMap){
        System.out.println("getSessionAttributes...");
        String msg = (String) modelMap.get("msg");
        System.out.println(msg);
        return "success";
    }
 
    @RequestMapping(value="/delSessionAttributes")
    public String delSessionAttributes(SessionStatus status){
        status.setComplete();//删除session域中的存入的数据
        return "success";
    }
}

前端代码

success.html

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h3>入门成功</h3>
    ${ msg }
    ${sessionScope}
</body>
</html>

测试

测试1

访问:http://localhost:8080/anno/testSessionAttributes/

前端

测试2

访问:http://localhost:8080/anno/getSessionAttributes/

后端打印

getSessionAttributes...
testSessionAttributes

测试3

访问:http://localhost:8080/anno/getSessionAttributes/

测试4

再次访问:http://localhost:8080/anno/getSessionAttributes/

后端打印

getSessionAttributes...
null

前端

到此这篇关于详解SpringBoot中@SessionAttributes的使用的文章就介绍到这了,更多相关SpringBoot @SessionAttributes内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • swagger2和knife4j的详细使用教程(入门级)

    swagger2和knife4j的详细使用教程(入门级)

    最近项目中用到了Swagger2和knife4j作为接口文档,所以下面这篇文章主要给大家介绍了关于swagger2和knife4j的详细使用教程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • FeignMultipartSupportConfig上传图片配置方式

    FeignMultipartSupportConfig上传图片配置方式

    这篇文章主要介绍了FeignMultipartSupportConfig上传图片配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • java 请求跨域问题解决方法实例详解

    java 请求跨域问题解决方法实例详解

    这篇文章主要介绍了java 请求跨域问题解决方法实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • SpringBoot项目中集成Apollo的方法步骤

    SpringBoot项目中集成Apollo的方法步骤

    本文主要介绍了SpringBoot项目中集成Apollo的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • 深入浅出MappedByteBuffer(推荐)

    深入浅出MappedByteBuffer(推荐)

    MappedByteBuffer使用虚拟内存,因此分配(map)的内存大小不受JVM的-Xmx参数限制,但是也是有大小限制的,这篇文章主要介绍了MappedByteBuffer的基本知识,需要的朋友可以参考下
    2022-12-12
  • Java开发工具Eclipse使用技巧全局搜索和更替

    Java开发工具Eclipse使用技巧全局搜索和更替

    这篇文章主要介绍了Java开发工具Eclipse使用技巧全局搜索和更替,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Java泛型在集合使用与自定义及继承上的体现和通配符的使用

    Java泛型在集合使用与自定义及继承上的体现和通配符的使用

    泛型又称参数化类型,是Jdk5.0 出现的新特性,解决数据类型的安全性问题,在类声明或实例化时只要指定好需要的具体的类型即可。Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮
    2021-09-09
  • Java中print、printf、println的区别

    Java中print、printf、println的区别

    这篇文章主要介绍了Java中print、printf、println的区别的相关资料,需要的朋友可以参考下
    2023-03-03
  • Java 非阻塞I/O使用方法

    Java 非阻塞I/O使用方法

    这篇文章主要介绍了Java 非阻塞I/O使用方法,文中涉及非阻塞I/O的简介,同时向大家展示了利用非阻塞I/O实现客户端的方法,需要的朋友可以参考下。
    2017-09-09
  • Spring Boot 数据校验@Valid+统一异常处理的实现

    Spring Boot 数据校验@Valid+统一异常处理的实现

    这篇文章主要介绍了Spring Boot 数据校验@Valid+统一异常处理的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04

最新评论