17
|
Daniel Alexiuc arunjitsingh · 技术社区 · 16 年前 |
![]() |
1
12
编辑2:请注意,此答案不再正确。见 @doanduyhai's answer 下面。 编辑:请注意,这是针对Spring2.5和May的,但不一定确保Spring3.x也是如此。请仔细检查文档! 这与甘道夫所说的一致。 表单控制器为表单请求寿命建模,从表单的初始查看到表单提交。表单提交之后,表单控制器的工作就完成了,它将从会话中删除命令对象。 因此,要将命令对象保留在表单工作流之间的会话中,需要手动管理会话。在一个干净的日志后,对象将从会话中删除。 简而言之,我认为setComplete()方法只是一个很好的实践,但并不一定是必需的。 编辑 我只是在我的春鉴里确认了这一点。我将引用它:
基本上这就是我上面说的。它将它存储在会话中,直到a)调用setComplete()或b)控制器成功完成一个POST。 |
![]() |
2
22
关于控制器退出后会话属性是否被清除,存在很大的争论。 为了一劳永逸地澄清,我们可以看看 弹簧MVC 3.1.0释放 源代码。 界面 org.springframework.web.bind.support.sessionAttributeStore网站 显示以下方法:
默认实现是 org.springframework.web.bind.support.defaultsessionAttributeStore 做一个“ 打开调用层次结构 “关于 清除属性() 在Eclipse中,我们可以看到该方法由两个不同的流调用: 1) org.springframework.web.method.annotation.modelfactory模型工厂
2) org.springframework.web.bind.annotation.support.handlerMethodInvoker
很明显,在这两种情况下,只有在 this.sessionstatus.iscomplete()。 被称为。 我深入研究了 默认会话属性存储 . 在引擎盖下,它得到了真实的 HTTP会话 对象来存储属性,以便同一会话中的其他控制器可以访问这些属性。 所以不,会话属性不会在干净的日志后被删除。 |
![]() |
3
1
你有什么理由要这么做吗? 从这个线程: @SessionAttribute Problem
|
![]() |
Mayur · maven项目中找不到文件异常找不到xml文件 3 年前 |
![]() |
Mayur · 我试图导入(import org.springframework.context.ApplicationContext),但它给了我错误org。Sprigframew无法解决 3 年前 |
![]() |
Pasha · 如何在@RequestBody中传递2个对象? 7 年前 |
![]() |
Halil · Spring MVC-有条件返回html内容或模板内容 7 年前 |
![]() |
M.K · 实现easy REST服务的问题-Spring MVC 7 年前 |