zoukankan      html  css  js  c++  java
  • 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中不会有相应的数据。

  • 相关阅读:
    Java是如何实现平台无关性的
    Java 语法糖详解
    深入分析Java的编译原理
    Java代码的编译与反编译那些事儿
    Java 源码学习系列(三)——Integer
    总结TESTNG与JUNIT的异同
    selenium如何操作cookies实现免登录
    selenium选择弹出窗口
    Selenium+Java(七)Selenium对话框的处理
    Java-控制台接受用户输入数据的方法
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12178317.html
Copyright © 2011-2022 走看看