SpringMVC框架在Controller中對於Session的處理
阿新 • • 發佈:2019-01-01
Controller中的程式碼:
User類的程式碼:@Controller @SessionAttributes({"User","Y"}) //此處定義此Controller中將要建立和使用哪些session中的物件名 public class UserController { @Resource private UserService userService; @RequestMapping("user_login") public String login(User user, ModelMap modelMap){ //modelMap自動與session對應,你在往modelmap中新增對應屬性便是往session中新增屬性(前提是你已經在@SessionAttributes註解中定義好) User userTemp = this.userService.findByName(user.getName()); if((userTemp.getState() == 1) && (userTemp.getPassword().equals(user.getPassword())){ modelMap.addAttribute("User", userTemp); //成功將userTemp存入session中 modelMap.addAttribute("Y",1); //成功將1存入session中 return "/user/index"; }else { return "index"; } @RequestMapping("user_logout") public String logout(@ModelAttribute("User") User user, SessionStatus sessionStatus){ //@ModelAttribute("User")相當於將session中名為"User"的物件注入user物件中 //sessionStatus中的setComplete方法可以將session中的內容全部清空 sessionStatus.setComplete(); return "index"; } }
public class User {
private Integer id;
private String name;
private String password;
private String email;
private String activecode;
private Integer state;
//省略set和get方法
}
總結:
如果用@SessionAttributes註解的話,博主暫時沒有找出好方法可以單獨刪除session中的一個物件,即便是在action中傳入引數HttpSession依然是隻能獲得session中的內容,無法刪除,如果大家找到好辦法能解決這個問題,還望能在評論中留下解決方法或者聯絡方式,博主將感激不盡!!