我有这个问题,我用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;
...
}
答案 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"/>
谢谢!