• springmvc之处理模型数据SessionAttributes注解


    ModelAndView和Map都是将数据模型放到请求域request中。

    (1)若希望在多个请求之间共用某个数据模型属性数据,可以在控制器类上加一个@SessionAttributes。springmvc会将在模型中对应的属性存到HttpSession中。

    (2)@SessionAttributes除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中。

    SpringmvcTest.java

    @SessionAttributes(value={"user"},types= {String.class})
    @RequestMapping("/springmvc")
    @Controller
    public class SpringmvcTest {
        private static final String SUCCESS = "success";
        
        @RequestMapping(value="/testSessionAttributes")
        public String testSessionAttributes(Map<String,Object> map) {
            User user = new User();
            user.setUsername("tom");
            user.setAge(12);
            map.put("user", user);
            map.put("school", "一中");
            System.out.println("testSessionAttributes");
            return SUCCESS;
        }
    }

    index.jsp

        <a href="springmvc/testSessionAttributes">testSessionAttributes</a>

    success.jsp

        <p>Success</p>
        <p>request user:${requestScope.user}</p>
        <p>session user:${sessionScope.user}</p>
        <p>request school:${requestScope.school}</p>
        <p>session school:${sessionScope.school}</p>

    在启动服务器之后:

    点击:

    说明: SessionAttributes注解只能修饰类,value属性用于将指定名字的属性放入到session中。types属性将指定的数据类型放到session中。在jsp中,利用requestScope(请求域)可以取得传过来的模型数据,利用sessionScope(会话域)来获取session中的数据。如果不利用SessionAttributes,那么数据模型就只会存放在request中,在session中不会有相应的数据。

  • 相关阅读:
    【刷题】LeetCode刷刷刷 — 2021-05-31(2)
    【刷题】LeetCode刷刷刷 — 2021-05-31(1)
    【刷题】LeetCode刷刷刷 — 2021-05-30(2)
    适配器模式
    跨端开发框架各方评价【整合】+思索
    uni-app运行到小程序报错onStreamRead
    序列化
    tkinter---GUI
    tkinter--抽奖
    6位数(字母和数字)验证码
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12178317.html
Copyright © 2020-2023  润新知