我使用2.5并通过注释做所有事情。Spring MVC @SessionAttributes混淆!
我有一个简单的表单,允许用户编辑一个对象。它后面的控制器创建该对象并将其添加到GET上的模型,并在POST(提交)上处理更改。它工作正常,但我不明白为什么。该对象永远不会显式添加到会话中,并且该对象的“id”不会传递给提交方法。控制器的提交方法如何知道对象的“id”值?
这个问题出现的原因是我有另一个表单/控制器几乎与上面的相同,但是除非将对象添加到@SessionAttributes,否则不会“工作”。不同的是,这个特定的控制器工作的对象有一个引用另一个对象是懒加载(我在后台使用Hibernate)。当我在未将父对象放入SessionAttributes的情况下提交表单时,我得到DataIntegrityViolationException,因为我从不加载引用的对象。
当我将父对象添加到@SessionAttributes时,问题奇迹般地消失。我神奇地说,因为即使我将父对象放入GET的会话中,我仍然没有显式加载引用的对象,所以它应该为空(或空代理或任何发生的事情)。
世界正在发生什么?我需要一些帮助!