@requestbody---接受前端传json对象并绑定javabean
@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的更多相关文章
- fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化
fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化 在开发过程中,经常需要和前端交互数据,数据交互的格式都是JSON,在此过程中免不了json字符串 ...
- 大话前端解析Json对象
一.对于标准的json对象如: var result=[{"flag":1,"macId":"2","mbId":0,& ...
- gson和fastjson将json对象转换成javaBean 简单对照
今天在网上看代码时,发现项目使用了Gson,用于将json字符串转换成javaBean. 以前没使用过Gson,随即,简单入了个们, 想起fastjson也有将json字符串转换成javaBean的A ...
- 前端传json数组 ,后端的接收
前端传输: var updateGoodsId=$(this).val();//get id var updateGoodsPrice=$("#IngoodsPrice"+upda ...
- 前端中JSON对象和JSON字符串的相互转换
资料来源: http://www.css88.com/archives/3919
- SpringBoot获取前端传递JSON的几种方法
一.Json对象+@RequestBody接收 var val = {id: 1, name: "小明"}; $.ajax({ url: "/getJson", ...
- MVC中用ajax提交json对象数组
应用场景:在前端用ajax向服务器提交json对象数组,在controller的以对象数组作为函数的参数,提交的json数组直接转为服务器端的对象数组. 如: 要将json对象数组[{Id:1,Nam ...
- Javascript中Json对象与Json字符串互相转换方法汇总(4种转换方式)
1.Json对象转Json字符串 JSON.stringify(obj); 2.Json字符串传Json对象 JSON.parse(str);//第一种 $.parseJSON(str);//第二种, ...
- sessionStorage存储json对象
应用场景: 账单列表中A页面:点击其中的一列,ajax返回的数据在这一页 点击进入账单详情B页面: 因为在A页面已经做过ajax的请求了,所以希望把当前其中的一个数组对象传到B页面中,所以,就考虑到暂 ...
随机推荐
- Spring的 @ExceptionHandler注解无效问题
如果你想设置了@ExceptionHandler注解进行异常捕获返回异常信息,但是Debug调试时,代码并未进到被@ExceptionHandler注解标注的方法里,那么就检查你的配置文件是否包含 & ...
- js中return的作用及用法
这里面的return含有一些细节知识: 例如:onClick='return add_onclick()'与 onClick='add_onclick()'的区别 JAVASCRIPT在事件中调用函数 ...
- Geometry Shader 实现 Wireframe 绘制边线的Shader
最终效果: 参考了一个免费插件 https://assetstore.unity.com/packages/vfx/shaders/directx-11/ucla-wireframe-shader-2 ...
- Extjs grid禁用头部点击三角下拉菜单
表格头部的三角在点击的时候禁止出现下拉菜单,给每一列添加属性menuDisabled:true xtype:'grid', enableColumnResize:false, columns:[ {t ...
- 源码阅读之ArrayList(JDK8)
ArrayList概述 ArrayList是一个的可变数组的实现,实现了所有可选列表操作,并允许包括 null 在内的所有元素.每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组 ...
- spring cloud config搭建说明例子(三)-添加actuator
添加心跳 服务端 ConfigServer pom.xml添加actuator包 <dependency> <groupId>org.springframework.cloud ...
- CSS之背景设置、字体设置、文本设置
<html> <head> <meta charset="utf-8"> <title>单行文本框与多行文本框</title& ...
- 396 Rotate Function 旋转函数
给定一个长度为 n 的整数数组 A .假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的“旋转函数” F 为:F(k) = 0 * Bk[0] + 1 * Bk[1] + ... ...
- 倒计时和div幻灯片
倒计时从10秒开始,10秒之后,同意按钮可以使用. 设置一个区域背景,三张照片滚动显示,左右按钮可以下一张上一张,如果点击了左右按钮就不再自动滚动.
- Spring Boot (31) 数据验证
曾经参数的验证是这样的: public String test(User user){ if(user == null){ throw new NullPointerException("u ...