牛骨文教育服务平台(让学习变的简单)
博文笔记

SpringMVC框架在Controller中对于Session的处理

创建时间:2016-05-15 投稿人: 浏览次数:119

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中的内容,无法删除,如果大家找到好办法能解决这个问题,还望能在评论中留下解决方法或者联系方式,博主将感激不尽!!


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。