@SessionAttributes只能應用在類上;
它用於將Map、ModelMap、Model或ModelAndView中的數據暫存到HttpSession中以使其可以在多個請求之間共用數據,注意它不支持HttpServletRequest
@SessionAttributes除了可以通過value或names註解屬性指定哪些屬性放到Session中以外,還可以通過type註解屬性進行指定
下面來一個例子幫助理解
在index中定義兩個a標籤指向兩個不同方法。
<a href="./userinfo/userInfoView.do">視圖</a>
<a href="./userinfo/show.do">顯示</a>
在對Controller類添加@SessionAttributes,可以看出show方法中沒有任何操作。
@SessionAttributes("ui")
public class UserInfoController {
@RequestMapping("/userinfo/userInfoView.do")
public ModelAndView userInfoView() {
ModelAndView mv = new ModelAndView("userinfo/userInfoView");
UserInfo info = new UserInfo();
info.setName("laxi");
info.setMobile(110);
mv.addObject("ui", info);
return mv;
}
@RequestMapping("/userinfo/show.do")
public String show() {
return "userinfo/show";
}
}
兩個不同的顯示頁面。
最後我們觀察
在show.jsp中依然可以得到ui的值。