Spring MVC @ModelAttribute POST无效

时间:2014-01-07 19:05:30

标签: spring spring-mvc post model-view-controller modelattribute

我有这个问题,我用get调用API,它在POST的情况下提供空对象时工作正常。以下是代码段。

@Controller
@RequestMapping("/demo")
public class DemoController {
@RequestMapping(value = "/create")
    public ModelAndView createUser(@ModelAttribute User user) {
    ...
    ...
    }
}

GET:localhost:8080 / demo / create.json?name = test& title =这个工作正常 使用表单数据的POST不起作用。我变空了。

public class User implements Serializable {
    private String name;
    private String title;

    ...
}

2 个答案:

答案 0 :(得分:1)

我建议使用以下代码。

@RequestMapping(value = "/create", method = RequestMethod.GET)
public ModelAndView createUser() {

   ModelAndView modelAndView = new ModelAndView("/createuser.jsp");
   modelAndView.addObject("user", new User());
   return modelAndView;
}

@RequestMapping(value = "/create", method = RequestMethod.POST)
public ModelAndView createUserProcess(@ModelAttribute("user") User user,) {
  // save user to db

}

出于好奇。您不应该使用createUser显示表单并使用createUserProcess处理它吗?另外,请确保您的表单包含以下内容:

<form:form commandName="user" modelAttribute="user"> 


</form:form>

答案 1 :(得分:0)

感谢您的回复。我正在使用Postman来验证我的控制器。我发现我需要添加多部分解析器。

以下是修复它的行。

<bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

谢谢!