SpringMVC参数传递:@RequestBody @ResponseBody 前台传递数组
来源:互联网 发布:天思软件集团 编辑:程序博客网 时间:2024/05/01 09:29
今天搞了整天,目的是怎样,将前台Ajax传递的数组对象,在控制器中被接收,之前都是传递的对象,没有任何问题,现在是数组。可能出现各种位置的问题。
其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List
首先确保Jackson包是正确的版本,如果是非正确的版本可能会出现问题。
我的Jackson版本如下:
传递数组
Spring-MVC.xml
<bean class= "org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name= "messageConverters"> <list> <bean class= "org.springframework.http.converter.StringHttpMessageConverter" > <property name= "supportedMediaTypes"> <list> <value> text/plain;charset=UTF-8 </value> <value> application/json; charset=UTF-8</value > </list> </property> </bean> <bean class= "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> </list> </property> </bean>
js端
ajax请求: 目前好像只能要$.ajax 如有采用$.post,估计要控制contentType = "application/json",不然后报HTTP state错误;
$.ajax({ type : 'POST', url : 'simulator/pog/add', contentType : "application/json" , //必须指定contentType data : JSON.stringify(voArr), //voArr是数组对象,必须转成数组字符串 success : function(data) { } });
SpringMVC控制器端:
@RequestMapping("/add" ) @ResponseBody public String addPogInfo(@RequestBody SMPogDetail[] list) { //这个地方是对象数组,或者是List<SMPogDetail> return "success" ; }
传递普通对象(非数组)
$.ajax({ type : 'POST', url : "simulator/pog/getAllPogList", data : param, //参数是json对象,而不是字符串,不需要指定contentType success : function(data) { data = JSON.parse(data); if (true == data.success) { pog.addRow(data.rows); } } });
SpringMVC控制器端:
@RequestMapping("/add" ) @ResponseBody public String addPogInfo(SMPogDetail detail) { return "success" ; }
1 0
- SpringMVC参数传递:@RequestBody @ResponseBody 前台传递数组
- springMVC中使用注解@ResponseBody,@RequestBody传递json数据
- spring之@ModelAttribute,@RequestBody, @ResponseBody 参数传递的运用详解
- ext 前台传递数组参数
- 前台传递参数使用变量@RequestParam springmvc
- SpringMVC前台ajax传递一位数组
- springMVC中前台向后台传递参数的方式
- SpringMVC之后台接收参数与前台传递数据
- SpringMVC之后台接收参数与前台传递数据
- SpringMVC 之 后台接收参数 与前台传递数据
- springmvc 传递和接收数组参数
- SpringMVC之@RequestBody, @ResponseBody
- SpringMVC - @Responsebody与@RequestBody
- SpringMVC requestBody responseBody 详解
- springMVC--requestBody和responseBody
- SpringMVC前台传递数组,后台使用list接收
- 前台发送 ajax 请求到后台传递数组参数
- 前台传递参数,乱码问题
- 最简单的jquery导航,感谢csdn上的大神帮忙
- 创业者该如何设计公司的股权架构
- TextKit的使用
- 切莫一味顺从
- LetCode PlusOne的三种解法
- SpringMVC参数传递:@RequestBody @ResponseBody 前台传递数组
- DLNA简单介绍
- 使用FractionSlider生成的视差幻灯效果原型
- 日志注册ios
- 15. 文件权限管理
- SQL BETWEEN AND 用法
- 在被调函数中开辟的内存内否在主调函数中使用?
- UVa 11401 - Triangle Countin
- 解决Ubuntu下任务栏不显示任务的问题