Dans votre question, votre méthode de contrôleur essaie de prendre companyId comme paramètre de requête. En postier vous envoyez companyId dans le corps de la requête. Comme je l'ai dit dans le commentaire, vous pouvez envoyer la demande param dans la section url directement comme ça: /auth/company/delete? CompanyId = 2. Spring boot peut détecter le paramètre de demande companyId et l'affecter directement à la variable companyId de la méthode.
Si vous voulez envoyer companyId dans le corps de la demande (Vous avez dit que dans le commentaire) vous devez changer la signature de votre méthode comme ci-dessous.
@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"));
}
Ou:
@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
}
Si vous voulez utiliser le corps de demande et que vous voulez prendre valeur entière directement dans la variable méthode du contrôleur en entier votre corps de la demande devrait être comme:
{2}
Et la méthode de contrôleur devrait être comme:
@RequestMapping(value = "/auth/company/delete", method = RequestMethod.POST, produces = {"application/json", "application/xml"})
@ResponseBody
public ResponseMessage deleteCompany(@RequestBody Integer companyId) {
return companyManageService.deleteCompany(companyId);
}
Ce n'est pas requestParam que vous envoyez via un facteur. C'est le requestBody. Si vous voulez l'envoyer en paramètre, votre URL devrait être **/auth/company/delete? CompanyId = 2 ** – barbakini
@barbakini même j'ai changé #RequestParam en #RequestBody Cela ne fonctionne toujours pas, et j'ai essayé de changer companyId de Entier à String aveC#RequestBody et valeur obtenue en tant que "companyId": 2 à la place si 2! –
Avez-vous essayé en tant que **/auth/company/delete? CompanyId = 2 **? En cas de modification de requestBody, votre méthode doit obtenir un objet Map non String ou Integer. like ** deleteCompany (corps de la carte @RequestBody) ** body.get ("candidateId) – barbakini