SpringMVC框架在Controller中对于Session的处理
Controller中的代码:
@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"; } }User类的代码:
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中的内容,无法删除,如果大家找到好办法能解决这个问题,还望能在评论中留下解决方法或者联系方式,博主将感激不尽!!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。