Spring启动:PATCH不会映射模型,而相同的POST方法也是如此

问题描述 投票:0回答:1

我有以下两种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方法时,'building'不会映射。我试图删除@Validated,所有字段都为空。已经使用Postman和axios(javascript)进行了测试。我不太明白为什么它不起作用然后POST方法完美无缺。

我正在使用Spring Boot 2.0.0.RELEASE

也许相关代码:控制器定义:

@RestController
@RequestMapping("/buildings")
public class BuildingController { [...] }

如果有必要,我很乐意添加更多代码。

spring rest spring-boot
1个回答
0
投票

通过将@ModelAttribute更改为@RequestBody来解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.