SessionAttributes注解:
作用:
将Map、ModelMap、Model或ModelAndView中的数据暂存到HttpSession中以使其可以在多个请求之间共用数据。
注意:
1、不过包括request。
2、只能作用于类上。
一、:
Map中put()方法:
通过value指定哪些属性放到Session.
@Controller
@SessionAttributes(value = { "id" })
Public class StudentController {
@RequestMapping(value = "/student/login.do")
public String login(Map<String, Object>map) {
map.put("id", "3306");
return "result";
}
}
通过type注解指定属性存入session。
@Controller
@SessionAttributes(types = { Integer.class })
publicclass StudentController {
@RequestMapping(value = "/student/login.do")
public String login(Map<String, Object>map) {
map.put("age", 18);
map.put("score", 98);
return"result";
}
}
ModelAndView 的addObject()方法:通过names注解属性指定哪些属性放到Session中.
package com.jd.controller;
@Controller
@SessionAttributes({"userInfo"})
publicclass UserInfoController {
@RequestMapping("/userinfo/toView.do")
public ModelAndView editView() {
ModelAndView mv = new ModelAndView("to");
UserInfo userInfo = new UserInfo();
userInfo.setUserName("admin");
userInfo.setPassword("123456");
userInfo.setMobile("18834778972");
userInfo.setAddress("河南省郑州市高新区升龙又一城");
mv.addObject("userInfo", userInfo);
return mv;
}
}
Model的addAttribute()方法:
@Controller
@SessionAttributes({"userInfo"})
public class UserInfoController {
@RequestMapping("/userinfo/toView.do")
public String editView(Model model) {
UserInfo userInfo = new UserInfo();
userInfo.setUserName("admin");
userInfo.setPassword("123456");
userInfo.setMobile("18834567172");
userInfo.setAddress("湖南省升龙又一城");
model.addAttribute("userInfo", userInfo);
return "to";
}
}