SpringBoot接收前端参数的几种方式
昨天和前端小伙伴在联调是碰到了参数接收不到的错误,我在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