@SessionAttributes

来源:互联网 发布:php怎么接私活 编辑:程序博客网 时间:2024/06/05 07:56

源码

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic @interface SessionAttributes {    /**     *将Model中指定名字的键值对对象存到session中     */    String[] value() default {};    /**     * 将Model中指定类型的键值对对象存到session中     */    Class<?>[] types() default {};}

与ModelAttribute的区别

ModelMap 的作用域是 request 级别是,也就是说,当本次请求结束后,ModelMap 中的属性将销毁。
SessionAttributes作用域是session级别,其属性可以被跨请求访问。

作用:

指定 ModelMap 中的某些属性需要转存到 session 中

//将返回值放到currentUser里面,然后又被存储到session里面@Controller@ResponseBody  @SessionAttributes("currentUser") public class testController {      @ModelAttribute("currentUser")    @RequestMapping("/getUser.do")      public String getUser() {          User user = userService.getUser("liming");          return user;      }  }  

注入sessionAttributes到ModelMap

//只要session和model,2者的value一样,ModelAttribute就能从session里面直接取到currentUser@Controller@ResponseBody  @SessionAttributes("currentUser") public class testController {      @RequestMapping("/getUser.do")      public User getUser(@ModelAttribute("currentUser") User user) {          String name = User.getName;        String address = User.getAddress;         User user = userService.getParent(name);        return user;    }  }  
0 0
原创粉丝点击