我使用2.5並通過註釋做所有事情。Spring MVC @SessionAttributes混淆!
我有一個簡單的表單,允許用戶編輯一個對象。它後面的控制器創建該對象並將其添加到GET上的模型,並在POST(提交)上處理更改。它工作正常,但我不明白爲什麼。該對象永遠不會顯式添加到會話中,並且該對象的「id」不會傳遞給提交方法。控制器的提交方法如何知道對象的「id」值?
這個問題出現的原因是我有另一個表單/控制器幾乎與上面的相同,但是除非將對象添加到@SessionAttributes,否則不會「工作」。不同的是,這個特定的控制器工作的對象有一個引用另一個對象是懶加載(我在後臺使用Hibernate)。當我在未將父對象放入SessionAttributes的情況下提交表單時,我得到DataIntegrityViolationException,因爲我從不加載引用的對象。
當我將父對象添加到@SessionAttributes時,問題奇蹟般地消失。我神奇地說,因爲即使我將父對象放入GET的會話中,我仍然沒有顯式加載引用的對象,所以它應該爲空(或空代理或任何發生的事情)。
世界正在發生什麼?我需要一些幫助!