@ModelAttribute和@SessionAttribute

如果希望将方法入参对象添加到模型中,则仅需在入参前使用@ModelAttribute注解
在方法定义上使用@ModelAttribute注解,SpringMVC在调用目标处理方法前,会逐个调用在方法上标注了@ModelAttribute注解的方法,并将这些方法的返回值添加到模型中,此时方法入参再用@ModelAttribute修饰则HTTP请求消息进一步覆盖模型中对象
SpringMVC在调用方法前会创建一个隐含的模型对象,作为模型数据的存储容器—隐含模型。如果处理方法的入参为map或Model类型,则SpringMVC会将隐含模型的引用传递给这些入参。在方法中,可以通过这个入参对象访问到模型中的数据,也可以向模型中添加新的属性数据
如果希望在多个请求中共享某个模型属性数据,则可以在控制器类中标注一个@SessionAttribute,SpringMVC会将模型中对应的属性暂存到HttpSession中
sessionStatus.setComplete让SpringMVC清除本处理器对应的会话属性
SpringMVC对@ModelAttribute及@SessionAttribute处理流程
1、SpringMVC在调用方法前,在请求线程中创建一个隐含的模型对象
2、调用所有标注了@ModelAttribute的方法,并将方法返回值添加到隐含模型中
3、查看Session中是否存在类上标注的@SessionAttribute的属性,有则添加覆盖
4、标注了入参@ModelAttribute方法若与@SessionAttribute相同若隐含模型中没有则报错,若不相同则创建实例

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

grow_up_footstep

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值