我有以下两种REST方法:
@PostMapping
public Object create(@ModelAttribute("building") @Validated Building building) {
if (building != null && !(building.getName().equals("") || building.getAddress().equals(""))) {
return buildingDao.save(building);
}
return HttpStatus.NOT_FOUND;
}
@PatchMapping
public Object update(@ModelAttribute("building") @Validated Building building) {
if (building.getId() != null && buildingDao.findById(building.getId()).isPresent()) {
return buildingDao.save(building);
}
return HttpStatus.NOT_FOUND;
}
正如你所看到的那样,它们是准确的,除了一种方法是POST而另一种方法是PATCH。
我的问题是'建设'我使用PATCH方法时不会映射。我试图删除@Validated,所有字段都为空。已经使用Postman和axios(javascript)进行了测试。我不太明白为什么它不会工作,然后POST方法可以完美运行。
我使用的是Spring Boot 2.0.0.RELEASE
也许相关代码: 控制器定义:
@RestController
@RequestMapping("/buildings")
public class BuildingController { [...] }
如果有必要,我很乐意添加更多代码。
答案 0 :(得分:0)
通过将@ModelAttribute更改为@RequestBody来解决此问题。