@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";
}
测试成功,成功跳转且成功拿到值