@ModelAttribute和@SessionAttributes的用法

1.@SessionAttribute是Controller类级别的注解,作用是为了将指定名称或类型的隐含模型中的对象放置到Session作用域中,实现多次请求共享参数,在每次请求的时候,使用@SessionAttributes添加的对象也会被添加到隐含模型对象中,我们可以通过@ModelAttribute来获取隐含模型中的对象。

注:向隐含模型对象中添加数据的几种方式:1、Map/Model/ModelMap类型的入参 2、@ModelAttribute注解标注在方法上或者方法的入参处,标注在方法的入参数,既可以从隐含模型中取数据,又可以向隐含模型对象中添加数据。

2.@ModelAttribute标注的对象是request级别的,数据最终都会被放置到request作用域中,隋着request的销毁而销毁;@SessionAttribute标示数据为session级别,清除的方式为,在方法的入参中添加SessionStatus类型的入参,然后使用SessionStatus.setComplete()来清除,注意SessionStatus.setComplete()只会清除通过@SessionAttributes方式添加的数据,而不会清除HttpSession中数据。

你可能感兴趣的:(spring,mvc)