@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
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值