繁体   English   中英

未设置@SessionAttribute

[英]@SessionAttribute not being set

我真的需要你的帮助。 我突然像往常一样在使用Portlet应用程序时突然不得不离开计算机。 当我返回时,出现了NullPointerException。 好那是为什么 嗯...我的会话不包含它应该容纳的对象。 因此,我可能会失去一些东西,但是这就是我一直看待SessionAttributes的方式。

我将我的Controller注释为:

@SessionAttributes({
    SOME_ATTR
})

然后我有一个带有以下签名的方法:

@Valid @ModelAttribute(SOME_ATTR) SomeObject someObject

还有我的会话属性的初始化方法:

@ModelAttribute(SOME_ATTR)
public SomeObject getSomeEmptyObject() {
    return someUtils.createSomeObject();
}

当我调试我的应用程序时,我发现:

  • 手动寻找到会话中,没有什么在它
  • 表格已正确绑定到someObject

所以我的两个大问题是:

  • Spring为什么不将someObject也设置为会话?
  • 当会话被认定无效,为什么不getSomeEmptyObject()调用来填充空白区域?

谢谢前进!

看看HttpSessionBindingListenerHttpSessionAttributeListener 如果SomeObject是您控制的类,则可以实现HttpSessionBindingListener,否则可能需要HttpSessionAttributeListener。

这样的SO发布很好地涵盖了这一点。

好吧,您是否以适当的形式设置了会话属性:

@SessionAttributes(value = {"user", "register"})

那就是我能想到的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM