SpringMVC@SessionAttributes和@SessionAttribute的区别

@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";
    }

测试成功,成功跳转且成功拿到值
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值