我有一个方法,将状态从“活动”更改为“非活动”和副
反之,记录,通过获取它的id。
现在,我想转换它返回一个ResponseEntity对象,在其中,我有一个存储的地图
当我测试我的方法时,我得到 400:错误请求
//////////////////////// 旧方法 ////////////// //
@RequestMapping("toggleStatus")
public @ResponseBody void toggleStatus(@RequestParam("resourceId") Long resourceId ){
ResourceElementMaster resourceElementMaster = resourceElementService.findById(resourceId);
if(resourceElementMaster.getIsActive() == true) {
resourceElementMaster.setIsActive(false);
} else {
resourceElementMaster.setIsActive(true);
}
resourceElementService.update(resourceElementMaster);
}
////////////////////// 新方法 //////////////// /////////////
@RequestMapping(value="toggleStatus",method=RequestMethod.PUT)
public @ResponseBody ResponseEntity<Map<String, Object>> toggleStatus(@RequestBody Long resourceId ){
Map<String, Object> mapToggle=new HashMap<String, Object>();
ResourceElementMaster resourceElementMaster = resourceElementService.findById(resourceId);
if(resourceElementMaster.getIsActive() == true) {
resourceElementMaster.setIsActive(false);
} else {
resourceElementMaster.setIsActive(true);
}
mapToggle.put("Update",resourceElementService.update(resourceElementMaster));
return new ResponseEntity<Map<String, Object>>(mapToggle, HttpStatus.OK) ;
}
我该如何解决这个问题?
答案 0 :(得分:1)
问题是,您尝试将Label1.Text = System.DateTime.Today.Day.ToString();
传递给json
方法。但是,/toggleStatus
仅接受@Controller
类resourceId
。
所以你通过Postman的回答应该是这样的:
PUT Long
此外,您的案例中不需要http://localhost:8080/toggleStatus?resouceId=42
。像这样修改你的RequestEntity
:
@controller
答案 1 :(得分:0)
不要传递json,你只需要传递resourceId,你接受它作为方法toggleStatus中的参数。
另外,使用@RequestParam而不是@RequestBody:
@RequestMapping(value="toggleStatus",method=RequestMethod.POST)
public @ResponseBody ResponseEntity<Map<String, Object>> toggleStatus(@RequestParam(value = "resourceId") Long resourceId ){
Map<String, Object> mapToggle=new HashMap<String, Object>();
ResourceElementMaster resourceElementMaster = resourceElementService.findById(resourceId);
if(resourceElementMaster.getIsActive() == true) {
resourceElementMaster.setIsActive(false);
} else {
resourceElementMaster.setIsActive(true);
}
mapToggle.put("Update",resourceElementService.update(resourceElementMaster));
return new ResponseEntity<Map<String, Object>>(mapToggle, HttpStatus.OK) ;
}