我有一個需求,我需要將Spring MVC中的命令對象從SimpleFormController傳遞給控制器(其實現控制器接口的控制器)。 Spring的版本是2.5,配置是基於XML的。將命令對象從SimpleFormController傳遞到控制器
從SimpleFormController重定向到控制器。然而,即使我在控制器指向的jsp中添加了session =「true」,對$ {command.myVal}的調用也會返回null。
的重定向代碼在SimpleFormController中是:
return new ModelAndView("redirect:/SimpleController.do");
對於SimpleFormController的sessionForm屬性設置爲true,spring.xml
<property name="sessionForm"><value>true</value></property>
爲了解決這個問題,我必須明確添加在SimpleFormController命令對象到HttpSession:
HttpSession session = request.getSession(true);
session.setAttribute("command", commandObj);
在Simplecontroller中,我必須創建一個字符串映射到Obj並將其傳遞給View。在這裏,我再次從Session中獲取commandObj。
HttpSession session = request.getSession(true);
resultMap.put("command", session.getAttribute("command"));
請建議是否有更好的方法,而不使用註釋。這似乎是一種長期的方式來獲得結果。
請告訴我們重定向代碼。 – 2012-02-21 21:26:09
命令對象是否存儲在會話中?如果沒有,它的狀態不會在重定向中生存。 – GriffeyDog 2012-02-21 21:30:05
SessionForm對於SimpleFormController是真實的 true –
2012-02-21 21:33:56