Spring MVC Post Request

我有类似的东西

@RequestMapping("/property") @ResponseBody public String property(@RequestBody UserDto userDto ) { System.out.println(userDto.getUsername()); System.out.println(userDto.getPassword()); return "Hello"; } 

在我的控制器中。

但是当我发帖时,它给了我一个错误

 

在我的HTML中。 我哪里错了。

发布表单时,应使用@ModelAttribute注释。

将您的代码更改为:

 @RequestMapping("/property") @ResponseBody public String property(@ModelAttribute("userDto") UserDto userDto ) { System.out.println(userDto.getUsername()); System.out.println(userDto.getPassword()); return "Hello"; } 

你的HTML / JSP可以是:

 

当您将类似JSON或XML对象(或原始数据,如byte [])的内容传递给HTTP POST时,请求正文。 当您发布表单数据时,将为您处理和解析该表单数据。 最简单的方法是使用MVC表单:使用命令对象的表单代码,然后您将只接收一个命令对象,其中包含映射到该对象的表单中的所有条目。

请求映射默认方法是GET。 必须使用RequestMapping指定url方法。

 @RequestMapping(value="/property",method=RequestMethod.POST) 

一种方式是Jeevan建议的,或者你可以修改你的spring来接受它,就像,

 UserDto userDto; @RequestMapping("/property") @ResponseBody public String property(@RequestParam("username") userDto.username, @RequestParam("password") userDto.password) { System.out.println(userDto.getUsername()); System.out.println(userDto.getPassword()); return "Hello"; } 

当然,如果你在课堂上暴露属性,这不是一种优雅的做法。

如果你得到http错误500? 然后尝试使用

 @RequestMapping(value = "/property", method = RequestMethod.POST ) 

如果有其他错误请注明。