我真的需要你的帮助。当我突然离开电脑时,我像往常一样使用我的portlet应用程序。当我返回时,出现NullPointerException。好的,为什么呢?嗯...我的会话不包含它应该持有的对象。所以,我可能会失去一些东西,但在这里我总是看看SessionAttributes。
我的控制器注释如此:
@SessionAttributes({
SOME_ATTR
})
然后我有一个带有以下签名的方法:
@Valid @ModelAttribute(SOME_ATTR) SomeObject someObject
还有我的会话属性的init方法:
@ModelAttribute(SOME_ATTR)
public SomeObject getSomeEmptyObject() {
return someUtils.createSomeObject();
}
此时调试我的应用程序后,我发现:
someObject
所以我的两大问题是:
someObject
设置为会话?getSomeEmptyObject()
调用来填补空白区域?向前谢谢!
答案 0 :(得分:0)
查看HttpSessionBindingListener和HttpSessionAttributeListener。如果SomeObject是您控制的类,则可以实现HttpSessionBindingListener,否则您可能需要HttpSessionAttributeListener。
This SO posting非常清楚。
答案 1 :(得分:0)
那么,您是否以适当的形式设置了会话属性:
@SessionAttributes(value = {"user", "register"})
这就是我能想到的一切。