【发布时间】:2011-10-02 00:41:36
【问题描述】:
我正在使用HttpSessionBindingListener 的 valueUnbound 方法在会话即将到期之前释放锁(来自数据库的条目):
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
String user = (String) event.getSession().getAttribute("currentUsr");
removeLock(user);
}
设置锁定后,我将用户名设置为会话变量。
我在删除锁定方法中需要这个“用户名”。但是 getAttribute 抛出异常:
java.lang.IllegalStateException: getAttribute: 会话已经失效
我需要帮助来获取会话变量??或者有没有其他方法可以获取用户名?
否,因为会话已失效。
虽然,我想出了解决方案,但我通过 servlet 上下文设置属性 valueBound 方法并通过 : event.getSession().getServletContext().getAttribute("cUser");
它工作正常。谢谢EJP
我明白你的观点 EJP,你是对的,我让它变得复杂,我可以从 event.getValue() 中得到它。 +1 对您的回答,谢谢。
【问题讨论】:
-
请不要使用 cmets 的答案。谢谢。
标签: jsf-2 session-variables session-timeout spring-webflow-2