@requestbody---接受前端传json对象并绑定javabean----https://blog.csdn.net/ljxbbss/article/details/74452326

最近代码遇见了一个springmvc中的小问题,算是很基础的东西,同事问我后我有有些迷惑上网找了一些资料后弄清楚了。特此记录一下

首先是后台代码使用springmvc注解@requestbody,前端采用了easyui结合angulajs,老大把前端代码封装了很多东西,其实我们都是表面做工,就只是停留在使用层面上,包括后端框架的环境配置上,之前也是自己搭项目适合拷贝了一个base框架,时间长了对配置里面的具体内容都不是太了解了。

言归正传问题是这样的:

1.前端做保存操作的时候提交了很多参数过来,老大封装的同时把前端代码提交的时候content-type改成了application/json,后台也配置了一个针对spring4的son类型的httpmessageConverter,某次提交的时候加了@requestbody注解的时候参数获取不上并且报参数400,400这个状态码我们很了解,是因为参数类型不对,后来才发现是因为同事后台参数定义的实体bean比传过来的参数少定义了一个参数导致报了400,这是第一个地方。

2.平时我在写后台代码给前端app做接口的时候,其实并没有太在意,有些我都是直接没有用@requestbody这个注解,直接在入参的地方写了参数bean,也是可以直接解析到的。

答案:经过一番百度,发现了原因。springmvc这个地方针对前端提交参数的时候,有几种content-type的类型,这个地方请参考这篇文章 :http://blog.csdn.net/blueheart20/article/details/45174399

关键得是@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。并且@requestbody传送的参数需要是son对象即可;

附:form默认的提交方式content-type是x-www-form-urlencoded,会将传递的参数转换成key-value方式。

附带着说一下使用postman方式设置content-type为application/json方式测试后台接口

这个地方需要把要发送的参数写成json对象的格式粘贴在raw下面,上面的路径上就不用写参数了。

更多的postman设置content-type参考:http://blog.csdn.net/qq_25730711/article/details/54707603。

@requestbody---接受前端传json对象并绑定javabean的更多相关文章

  1. fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化

    fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化 在开发过程中,经常需要和前端交互数据,数据交互的格式都是JSON,在此过程中免不了json字符串 ...

  2. 大话前端解析Json对象

    一.对于标准的json对象如: var result=[{"flag":1,"macId":"2","mbId":0,& ...

  3. gson和fastjson将json对象转换成javaBean 简单对照

    今天在网上看代码时,发现项目使用了Gson,用于将json字符串转换成javaBean. 以前没使用过Gson,随即,简单入了个们, 想起fastjson也有将json字符串转换成javaBean的A ...

  4. 前端传json数组 ,后端的接收

    前端传输: var updateGoodsId=$(this).val();//get id var updateGoodsPrice=$("#IngoodsPrice"+upda ...

  5. 前端中JSON对象和JSON字符串的相互转换

    资料来源: http://www.css88.com/archives/3919

  6. SpringBoot获取前端传递JSON的几种方法

    一.Json对象+@RequestBody接收 var val = {id: 1, name: "小明"}; $.ajax({ url: "/getJson", ...

  7. MVC中用ajax提交json对象数组

    应用场景:在前端用ajax向服务器提交json对象数组,在controller的以对象数组作为函数的参数,提交的json数组直接转为服务器端的对象数组. 如: 要将json对象数组[{Id:1,Nam ...

  8. Javascript中Json对象与Json字符串互相转换方法汇总(4种转换方式)

    1.Json对象转Json字符串 JSON.stringify(obj); 2.Json字符串传Json对象 JSON.parse(str);//第一种 $.parseJSON(str);//第二种, ...

  9. sessionStorage存储json对象

    应用场景: 账单列表中A页面:点击其中的一列,ajax返回的数据在这一页 点击进入账单详情B页面: 因为在A页面已经做过ajax的请求了,所以希望把当前其中的一个数组对象传到B页面中,所以,就考虑到暂 ...

随机推荐

  1. /bin/bash: jar: command not found(转载)

    转自:http://blog.csdn.net/zhangdaiscott/article/details/23138023 /bin/bash: jar: command not found 解决办 ...

  2. bzoj 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛【树形dp】

    设f[u][0/1]为u这个点不选/选,转移的时候从儿子转移,f[u][1]=sum(f[son][0])+1,f[u][0]=sum(max(f[son][0],f[e[i].to][1])) #i ...

  3. codevs1297 硬币(背包dp,方案数)

    1297 硬币  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 我们知道即使是同一种面值的硬币,它们的重量也有可能不一样, ...

  4. UVa 101 - The Blocks Problem STL

    题目:给你n个方块,有四种操作: .move a onto b,把a和b上面的方块都放回原来位置,然后把a放到b上面: .move a over b,把a上面的放回原处,然后把a放在b所在的方块堆的上 ...

  5. 51nod1344 走格子

    1344 走格子 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格 ...

  6. BFS Codeforces Beta Round #94 (Div. 2 Only) C. Statues

    题目传送门 /* BFS:三维BFS,坐标再加上步数,能走一个点当这个地方在步数内不能落到.因为雕像最多8步就会全部下落, 只要撑过这个时间就能win,否则lose */ #include <c ...

  7. 用Movie显示gif(1)SimpleGif

    代码如下: import android.content.Context; import android.graphics.Canvas; import android.graphics.Movie; ...

  8. HTML DOM getElementById() 方法

    定义和用法 getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用. 语法 document.getElementById(id) 说明 HTML DOM 定义了多种查找元素 ...

  9. JSP&&EL&&JSTL

    JSP = JAVA + HTML + JSP自身的东西 JSP的脚本         <%!   %>        :翻译成Servlet中的成员内容. 定义变量,方法,类. -- ...

  10. Laravel5.1学习笔记22 Eloquent 调整修改

    Eloquent: Mutators Introduction Accessors & Mutators Date Mutators Attribute Casting Introductio ...