有关SpringMVC @RequestBody使用及应注意的坑(返回400,415)

一、前端应注意:

1.前台JSON格式数据必须组装正确

2.前台传JSON数据时,必须为JSON字符串,不能为JSON对象

3.ajax传输时一定要指定Content-Type:'application/json;charset=UTF-8',

4.dataType : "json",

5.将组装好的JSON数据转换为JSON字符串      data : JSON.stringify(params),

6.1非基本类型的参数绑定映射,前台传JSON数据时无需再考虑key要与controller接收方法中的参数名称一致了,只需考虑参数的类型就可以。是什么类型,前台就组装什么类型的JSON数据。

例如:List,Map,List<Map<?,?>>等

   @RequestMapping("/test.act")

   @ResponseBody

   public void test(@RequestBody List<String> list) {

       System.out.println("getParams : " + list);

    }

这个时候,前台JSON就不要这样去组装了:{“list”:[“a1”,”a2”]}

正确组装方式:[“a1”,”a2”]

6.2基本类型的参数绑定映射,前台传JSON数据时key需不需要保持与controller接收方法中的参数名称一致 [ 都 可 以 ]

例如:String等

   @RequestMapping("/test.act")

   @ResponseBody

   public void test(@RequestBody String str) {

       System.out.println("getParams : " + str);

    }

这个时候,传:{" str ":"zhangsan"}  {" str123 ":"zhangsan"} 都可以


二、后端应注意:

1.要有jackson相关依赖的全部jar包(内部主要是靠它来解析)

2.controller方法入参,作为接收的参数前,使用@RequestBody标识


这样从前端到后端数据的传输,基本问题就不大了

附加内容:复杂JSON组装

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,520评论 8 265
  • ­­「他说:“回去后我们写个感想吧?” 我说:“好。”」 中午一起吃饭的时候,男朋友对我说“晚上一起去看电影吧...
    要江山也要美人阅读 99评论 0 0
  • 今天我在做脱口演讲时,深刻感受到,演讲比写作难!写作是可以中间思考、停顿,找素材,但脱口演讲绝对不能,简直就是现场...
    江掌柜阅读 243评论 0 0
  • 这一年,我大一。 这一年,我耳边徘徊的不再是高中时的嘻笑声,取而代之的都是陌生的字眼:学分,学生会,班干部,团支部...
    Ice冰冰阅读 213评论 1 1