在控制器的ASP.NET MVC中,我可以让我的模型中的对象成为我的一个方法中的参数,并且由该方法处理的表单提交将自动填充该对象。
例如:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(User u){...}
将从表单提交中自动填充用户对象。
有没有办法让你使用Spring MVC自动发生这种情况,如果有,我该怎么做?
答案 0 :(得分:3)
在Spring MVC中(使用基于Spring MVC 2.5+注释的配置),它看起来完全相同:
@RequestMapping(method = RequestMethod.POST)
public ModelAndView edit(User u) { ... }
将自动填充User
对象。您还可以使用@ModelAttribute
注释显式指定相应模型属性的名称(默认情况下,属性名称是参数的类名,首字母为decapitalized,即“user”)
... (@ModelAttrbiute("u") User u) ...
答案 1 :(得分:1)
创建一个Form Controller,例如PriceIncreaseFormController并使其扩展SimpleFormController
覆盖方法public ModelAndView onSubmit(Object command)
上面有很多变种。寻找适合您需求的正确方法。对于简单流程,上述方法应该足够了。
在方法内部,您可以对命令进行类型转换并获取Command类。
commandObj = ((PriceIncrease) command)
commandObj将使用spring填充参数。
在你的springapp-servlet.xml中你应该告诉spring关于PriceIncrease命令类的内容,你也应该为你的命令类创建一个POJO。<bean name="/priceincrease.htm" class="springapp.web.PriceIncreaseFormController">
<property name="commandClass" value="springapp.service.PriceIncrease"/>
...
答案 2 :(得分:0)
在Servlet中没有,但绝对是在Spring MVC中。请查看web framework文档。
特别是Section 13.11.4,第9个要点。