在您的问题中,您的控制器方法尝试将companyId作为请求参数。在邮递员你正在发送请求正文中的companyId。就像我在评论中说的,你可以直接发送URL部分的请求参数:/auth/company/delete?companyId = 2。 Spring引导可以检测companyId请求参数,并直接将其分配给方法的companyId变量。
如果您想在请求正文中发送companyId(您在评论中说过),您必须更改您的方法签名,如下所示。
@RequestMapping(value = "/auth/company/delete", method = RequestMethod.POST, produces = {"application/json", "application/xml"})
@ResponseBody
public ResponseMessage deleteCompany(@RequestBody Map<String, Integer> map) {
return companyManageService.deleteCompany(map.get("companyId"));
}
或者:
@RequestMapping(value = "/auth/company/delete", method = RequestMethod.POST, produces = {"application/json", "application/xml"})
@ResponseBody
public ResponseMessage deleteCompany(@RequestBody CompanyDTO company) {
return companyManageService.deleteCompany(company.getCompanyId);
}
public class CompanyDTO {
private Integer companyId;
//getter setter
}
如果你想使用请求主体,而想直接搭上整数值控制器方法的作为整数变量您的请求主体应该是这样的:
{2}
和控制器方法应该是这样的:
@RequestMapping(value = "/auth/company/delete", method = RequestMethod.POST, produces = {"application/json", "application/xml"})
@ResponseBody
public ResponseMessage deleteCompany(@RequestBody Integer companyId) {
return companyManageService.deleteCompany(companyId);
}
它不是通过邮递员发送的requestParam。这是requestBody。如果你想发送请求参数你的网址应该是**/auth/company/delete?companyId = 2 ** – barbakini
@ barbakini即使我改变了#RequestParam到#RequestBody它仍然没有工作,我试图改变companyId从整数与#RequestBody字符串并得到值为“companyId”:2,而不是2! –
您尝试**/auth/company/delete?companyId = 2 **? 如果改变requestBody,你的方法应该得到一个Map对象而不是String或Integer。像** deleteCompany(@RequestBody地图主体)** body.get(“candidateId) – barbakini