一个Spring3 @SessionAttributes设置后,删除SESSION的问题。

AntMaster 发布于 2012/02/27 11:28
阅读 6K+
收藏 0

俺的Controller以下代码。

@SessionAttributes({
    SysConstants.USER_LOGIN_ID_SESSIONKEY,
    SysConstants.USER_LOGIN_NAME_SESSIONKEY,
    Constants.KAPTCHA_SESSION_KEY
})
public class UserController {
       /**
     * 设置登录信息到SESSION
     * @param userId        用户ID
     * @param userName        用户名
     * @param request
     */
    private void putLoginInfoToSession(Long userId,String userName,Model model){
        model.addAttribute(SysConstants.USER_LOGIN_ID_SESSIONKEY, userId);
        model.addAttribute(SysConstants.USER_LOGIN_NAME_SESSIONKEY, userName);
    }

    /**
     * 用户退出登录
     * @param model
     * @param request
     * @return
     */
    @RequestMapping(value="/logout/",method=RequestMethod.GET)
    public String userLogout(ModelMap model,HttpServletRequest request,
            @RequestParam(value="backurl",required=false,defaultValue="") String backurl){
      
        HttpSession session = request.getSession();
        session.removeAttribute(SysConstants.USER_LOGIN_ID_SESSIONKEY);
        session.removeAttribute(SysConstants.USER_LOGIN_NAME_SESSIONKEY);         model.remove(SysConstants.USER_LOGIN_ID_SESSIONKEY);
        model.remove(SysConstants.USER_LOGIN_ID_SESSIONKEY);
        model.remove(SysConstants.USER_LOGIN_NAME_SESSIONKEY);
        return "redirect:/" + backurl;
    }
}

本想这样清除SESSION里的两个属性:

    model.remove(SysConstants.USER_LOGIN_ID_SESSIONKEY);
    model.remove(SysConstants.USER_LOGIN_NAME_SESSIONKEY);
后来发觉以上代码执行后,SESSION里还存在?是不是代码哪里写的有问题了啊?问高手指点迷津。

加载中
0
AntMaster
AntMaster
还是自己解决了。
AntMaster
AntMaster
这样就可以了。SessionStatus.setComplete(); 有个问题啊。spring3 return "redirect:/";重定向,为什么会将MODEL的参数都带过去的啊?有没有办法不带过去啊?
光石头
光石头
怎么解决的啊?
0
空云万里晴
空云万里晴
SessionStatus.setComplete();可以清空session,但好像对象还在,不是吗?
返回顶部
顶部