我想将Put和Post映射请求应用于如下所示的方法。它适用于PUT,但不适用于POST请求。我错了什么?
@RestController
@RequestMapping("/PQR")
public class XController {
@PutMapping("xyz")
@PostMapping("xyz")
public MyDomainObject createOrUpdateDAO(
HttpServletRequest request,
@RequestBody String body) throws IOException {
//...
}
}
当我发出POST请求时,我得到一个405 HTTP状态代码:
[nio-8080-exec-3] o.s.web.servlet.PageNotFound:不支持请求方法'POST'
如果我查看this example,同样的方法会为GET和POST请求映射相同的方法。
@RequestMapping(value="/method3", method = { RequestMethod.POST,RequestMethod.GET })
@ResponseBody
public String method3() {
return "method3";
}
答案 0 :(得分:6)
删除@PostMapping
和@PutMapping
注释,并将method
添加到@RequestMapping
,即:
@RequestMapping(value={"/PQR", "xyz"},
method={RequestMethod.POST,RequestMethod.PUT})