【问题标题】:status.setComplete() not clearing the sessionstatus.setComplete() 不清除会话
【发布时间】: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


【解决方案1】:

你可以使用invalidate()

@RequestMapping(value="home1")
public String populateHomeSession(HttpservletRequest request){

HttpSession session=request.getSession();
session.invalidate();

    return "home1";
}

【讨论】:

  • 感谢 sn-p 但这不是我想要的。我也可以使用removeAttribute 或我在简单的 Servlet 应用程序中使用的其他一些选项,但我的问题是为什么上面的示例不起作用。请让我知道这一点。
  • 我错过的另一件事:在我的 jsp 屏幕中,我使用 <a href="home1">Next</a> 从一个屏幕导航到另一个屏幕。这与我面临的这个问题有关吗?
【解决方案2】:

setComplete 用于将会话属性标记为不需要请求已被控制器处理后:它不会立即修改会话,总体上听起来不合适对于您的用例。它旨在用于 POST 之类的情况,其中数据旨在在当前请求期间使用,但将来不应使用。

http://forum.spring.io/forum/spring-projects/web/108339-problem-with-sessionattribute-and-sessionstatus

【讨论】:

  • 如你所说:It does not immediately modify the session我想知道会话实际上是什么时候被修改的?
  • 我回答了您提出的问题...如果您有其他问题,您应该适当地修改问题。
【解决方案3】:

status.setComplete();渲染后删除会话属性。

【讨论】:

  • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
  • 2015-04-16
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多