国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

@SessionAttribute和@ModelAttribute詳解

2019-11-06 06:43:52
字體:
來源:轉載
供稿:網友

sPRing允許我們有選擇地指定Model中的哪些屬性需要轉存到session中,以便下一個請求可通過Session來訪問到這些屬性。這一功能是通過類定義處標注@SessionAttributes注解來實現的。

@Controller@RequestMapping(value = "login")@SessionAttributes("mysession")//定義把Model中的mysession屬性的值綁定到Session中public class LoginController { @RequestMapping(method = RequestMethod.POST) public String login(@ModelAttribute User user, ModelMap model) { String viewName = ""; boolean check = true; if (check) { model.addAttribute("mysession", "123"); viewName = "redirect:/home"; } else { viewName = "redirect:/"; } return viewName; }}

這樣我們不但可以在請求所對應的jsp視圖頁面中通過request.getAttribute()和session.getAttribute()獲取mysession,還可以在下一個請求所對應的JSP視圖頁面中通過session.getAttribute()或ModelMap#get()訪問到這個屬性。 這里我們僅將一個ModelMap的屬性放入Session中,其實@SessionAttributes允許指定多個屬性。你可以通過字符串數組的方式指定多個屬性,如 @SessionAttributes({“attr1”,”attr2”})。此外,@SessionAttributes還可以通過屬性類型指定要 session化的ModelMap屬性,如@SessionAttributes(types=User.class),當然也可以指定多個類,如 @SessionAttributes(types = {User.class,Dept.class}),還可以聯合使用屬性名和屬性類型指定:@SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”})。 范例2:通過@ModelAttribute綁定 我們使用@ModelAttribute把表單自動綁定到對象上,那這個對象也可以通過@ModelAttribute(“”)綁定到Session中。

@Controller@RequestMapping(value = "login")@SessionAttributes("user")//此處定義需要綁定到session中的model名稱public class LoginController {@RequestMapping(method = RequestMethod.POST)public String login(@ModelAttribute("user") User user, ModelMap model){ //@ModelAttribute將綁定到session中 String viewName = ""; boolean check = true; if (check) { viewName = "redirect:/home"; } else { viewName = "redirect:/"; } return viewName; }}

范例3:@SessionAttributes清除 @SessionAttributes需要清除時,使用SessionStatus.setComplete();來清除。注意,它只清除@SessionAttributes的session,不會清除HttpSession的數據。故如用戶身份驗證對象的session一般不同它來實現,還是用session.setAttribute等傳統的方式實現。

@Controller@RequestMapping(value = "login")@SessionAttributes("mysession")// 定義把Model中的mysession屬性的值綁定到Session中public class LoginController { @RequestMapping(method = RequestMethod.POST) public String login(@ModelAttribute User user, ModelMap model, SessionStatus sessionStatus) { String viewName = ""; boolean check = true; if (check) { model.addAttribute("mysession", "1233"); viewName = "redirect:/home"; } else { viewName = "redirect:/"; } sessionStatus.setComplete(); return viewName; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜兰市| 洮南市| 义马市| 尼玛县| 扎赉特旗| 余江县| 二连浩特市| 保靖县| 吉首市| 大关县| 阿克苏市| 海阳市| 荥经县| 华阴市| 彰武县| 东辽县| 曲周县| 象山县| 比如县| 辽阳市| 万州区| 布尔津县| 盐城市| 内江市| 江达县| 大化| 永州市| 稻城县| 东城区| 麻城市| 板桥市| 万山特区| 辛集市| 千阳县| 渭源县| 小金县| 子长县| 丹寨县| 璧山县| 永宁县| 阜新市|