gpt4 book ai didi

java - 将命令对象从 SimpleFormController 传递到 Controller

转载 作者:行者123 更新时间:2023-12-01 05:28:37 26 4
gpt4 key购买 nike

我有一个要求,我需要将 Spring MVC 中的命令对象从 SimpleFormController 传递到 Controller (它是实现 Controller 接口(interface)的 Controller )。 Spring的版本是2.5,配置是基于XML的。

从 SimpleFormController 重定向到 Controller 。但是,即使我在 Controller 指向的 jsp 中添加了 session="true",对 ${command.myVal} 的调用也会返回 null。

SimpleFormController 中的重定向代码是:

return new ModelAndView("redirect:/SimpleController.do");

对于SimpleFormController,sessionForm属性在spring.xml中设置为true

<property name="sessionForm"><value>true</value></property>

为了解决这个问题,我必须将 SimpleFormController 中的命令对象显式添加到 HttpSession 中:

 HttpSession session = request.getSession(true);
session.setAttribute("command", commandObj);

在 Simplecontroller 中,我必须创建一个 String 到 Obj 的 Map 并将其传递给 View。在这里,我再次从 session 中获取了 commandObj。

HttpSession session = request.getSession(true);
resultMap.put("command", session.getAttribute("command"));

请建议是否有更好的方法而不使用注释。这在某种程度上似乎是一种冗长的获得结果的方法。

最佳答案

为了让 Spring 解析命令对象,您需要将表单直接提交到扩展 BaseCommandController 的 Controller 。

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/servlet/mvc/BaseCommandController.html

如果您的 SimpleFormController 本身收到了表单提交,那么您可以将命令存储在 session 中,以供 Controller 使用。

(当然,如果您利用 Spring MVC 基于注释的方法,这一切都会变得更容易)

希望这有帮助

关于java - 将命令对象从 SimpleFormController 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9385333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com