昨天和前端小伙伴在聯調是碰到了參數接收不到的錯誤,我在postman上測試接口是正常的,但是與前端對接時就接收不到參數,但是問題就在於json 和 form-data 的區別!這是一個SpringBoot+Vue的前后端分離項目
1)如果前端傳的是json,后端接受時要用@RequestBody注解,json對象要與實體類對應
1 public boolean updateKnowledge(@RequestBody Knowledge knowledge){ 2 return knowledgeService.updateKnowledge(knowledge); 3 }
如果json沒有與實體類對應的話,可以有另外一種方法,利用JSONObject對象取值,可以直接轉換成你需要的類型,這里僅展示string類型
1 public int deleteKnowledge(@RequestBody JSONObject obj){ 2 return knowledgeService.deleteKnowledge(obj.getString("id")); 3 }
2)如果前端傳的是form-data,后端接受時要用@RequestParam注解,表單的key也要與實體類的字段對應
1 public void downloadFile( @RequestParam("groupName") String groupName,@RequestParam("url") String url, HttpServletResponse response) throws IOException { 2 MyFile myFile = new MyFile(); 3 myFile.setGroupName(groupName); 4 myFile.setUrl(url); 5 myFileService.downloadFile(myFile,response); 6 }
如果有什么疑問歡迎留言,當然我也不一定懂!一起學習一起進步,群876083754