@SessionAttributes是将存在model里面的也就是Request域中指定的值copy一份到session域中。只能作用在类上。
@SessionAttribute是在session域中拿出指定的对象,赋值给变量,来看几个demo
这里我用modelMap存值,其实modelMap和model和modelandView的功能都是差不多的,只不过modelandView多了逻辑处理。
这里我将变量存入到modelMap中,然后重定向到另一个controller方法中

 @RequestMapping("/testModelMap")
    public String testModel(ModelMap modelMap){
        System.out.println("执行了");
        List<Account> all = service.findAll();
        modelMap.addAttribute("list",all);
        return "redirect:/models/testSessionAttr";
    }

当然,在类上加上注解@SessionAttributes

@RequestMapping("/models")
@Controller
@SessionAttributes("list")//将model中的数据加入到session中

跳转过来的方法,从session域中拿存入的值,value表示key,required如果为true,表示如果没有这个键,则报错,反之,则不报错

@RequestMapping("/testSessionAttr")
    //从session域中拿指定的值
    public String testSessionAttriable(@SessionAttribute(value = "list",required = false) List<Account> list){
        System.out.println("执行了e");
        System.out.println(list);

        return "list";
    }

测试成功,成功跳转且成功拿到值
SpringMVC@SessionAttributes和@SessionAttribute的区别_SpringMVC
SpringMVC@SessionAttributes和@SessionAttribute的区别_分享_02