zoukankan      html  css  js  c++  java
  • @SessionAttributes 的使用

    @SessionAttributes 注解只用作用在 上,作用是将指定的 Model 的键值对保存在 session 中。可以让其他请求共用 session 中的键值对。

    指定保存的属性名

    作用是将 Model 中指定 属性名 的键值对保存在 session 中。

    下面的代码中,/user-information 请求将 Model 中的 user 对象添加到了 session 中。所以在 /testSession 请求中,虽然没有在 Model 中设置键值对,但是在页面中仍然可以取得 user 对象。因为 user 对象被添加到了 session 中,其他请求仍然可以取得。

    使用 @SessionAttributes(value = {"user1", "user2", "user3"}) 可以指定多个添加到 session 中的 Model 属性名。

    package com.pudding.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.SessionAttributes;
    
    import com.pudding.bean.User;
    
    @Controller
    @SessionAttributes("user")
    public class SessionAttributesController {
    
    	@RequestMapping("/user-information")
    	public void setSessionModel(Model model) {
    		User user = new User("小明", 18);
    		model.addAttribute("user", user);
    	}
    
    	@RequestMapping("/testSession")
    	public String get() {
    
    		return "test";
    	}
    
    }
    

    指定保存的属性类型

    作用是将 Model 中指定 类型 的键值对保存在 session 中。

    同样的,可以使用 @SessionAttributes(types = {User.class, Person.class}) 来指定多个类型。

    package com.pudding.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.SessionAttributes;
    
    import com.pudding.bean.User;
    
    @Controller
    @SessionAttributes("user")
    public class SessionAttributesController {
    
    	@RequestMapping("/user-information")
    	public void setSessionModel(Model model) {
    		User user = new User("小明", 18);
    		model.addAttribute("user", user);
    	}
    
    	@RequestMapping("/testSession")
    	public String get() {
    
    		return "test";
    	}
    
    }
    

    混合使用

    当然,你也可以混合使用上面的两种方式:@SessionAttributes(value = {"user1", "user2"}, types={Persion.class}) 会将 model 中属性名为 user1 和 user2 以及类型为 Person 的属性添加到 session 中。

  • 相关阅读:
    shell文本过滤编程(一):grep和正则表达式【转】
    从头开始写项目Makefile(十):make内嵌函数及make命令显示【转】
    写文章 TEE技术分析【转】
    移动电子商务:五个技术标准与Trustonic TEE解决方案【转】
    在vscode中使用pylint-django插件解决pylint的一些不必要的错误提示【转】
    从零开始学习OpenCL开发(一)架构【转】
    一张图让你学会Python【转】
    关于ping以及TTL的分析【转】
    g++的编译选项:-Wl,-rpath=【转】
    【梦幻连连连】源代码分析(四)-触摸处理
  • 原文地址:https://www.cnblogs.com/lemon-coke-pudding/p/12756243.html
Copyright © 2011-2022 走看看