【发布时间】:2014-08-12 02:55:12
【问题描述】:
我正在尝试清除会话。下面是我编写的一个小示例代码,用于检查SessionStatus。
@Controller
@SessionAttributes(value={"sessAttr1","sessAttr2","sessAttr3"})
public class SessionController {
@RequestMapping(value="index")
public ModelAndView populateSession(){
ModelAndView modelView = new ModelAndView("home");
modelView.addObject("sessAttr1","This value is added in a session 1");
modelView.addObject("sessAttr2","This value is added in a session 2");
modelView.addObject("sessAttr3","This value is added in a session 3");
return modelView;
}
@RequestMapping(value="home1")
public String populateHomeSession(SessionStatus status){
status.setComplete();
return "home1";
}
}
当home1 屏幕显示时,我仍然可以看到会话对象没有被清除。如果我试试这个:${sessAttr1 } 那么我可以在home1 屏幕中读取会话值。
请说明为什么它不起作用。
编辑
我使用<a href="home1">Next</a> 从一个屏幕导航到另一个屏幕。它与我面临的这个问题有关吗?
【问题讨论】:
-
使用 session.invalidate()
-
那很好...我也可以使用
removeAttribute或我在简单的 Servlet 应用程序中使用的其他一些选项,但我的问题是为什么上面的示例不起作用。请让我知道这一点。
标签: java spring spring-mvc spring-3