spring mvc接收JSON格式的参数
1.配置spring解析json的库
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
2.设置spring mvc 的配置文件
配置中资源解析器,messageConverters属性接收一个list,如果有其他解析器可以依次向其中添加,
不同的请求content类型spring会选择不同的解析器,解析后的内容会通过特殊的注解传送到spring mvc controller的方法中。
<beans:bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<beans:property name="messageConverters">
<util:list>
<beans:bean id="stringHttpMessageConverter" class="com.weishu.platform.integration.support.spring.ConfigurableStringHttpMessageConverter">
<beans:constructor-arg value="UTF-8"/>
</beans:bean>
<beans:bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
</util:list>
</beans:property>
</beans:bean>
3.配置spring mvc controller
使用注解@RequestBody配置参数为json对象,注意目前spring 配合 Jackson JSON库还不能正确处理泛型,如果将@RequestBody DeviceCommand[] deviceCommands 替换为List<DeviceCommand> deviceCommands ,spring 将不能将json解析为DeviceCommand对象,而是转换为LinkedHasMap对象。
@RequestMapping(value = "/admin/deviceManagement/update_device_white_list_status", method = RequestMethod.POST)
@ResponseBody
public String updateUserWhiteListStatus(Model model, @RequestBody DeviceCommand[] deviceCommands) {
JSONObject result = new JSONObject();
try {
deviceService.changeDeviceWhiteListStatus(Arrays.asList(deviceCommands));
result.put("success", true);
} catch (Exception e) {
result.put("success", false);
result.put("message", e.getMessage());
e.printStackTrace();
}
return result.toJSONString();
}
4.在请求中设置json对应的content类型
$.ajax({
url : 'update_device_white_list_status.service',
dataType : 'json',
contentType : 'application/json',
data : $.toJSON(deviceCommands),
success : function(e) {
$.messager.progress('close');
if (e.success) {
whiteListGrid.datagrid("reload");
$.messager.alert('成功', '操作成功', 'info');
} else {
$.messager.alert('请注意', '操作失败:' + e.message, 'error');
}
},
error : function(e) {
$.messager.progress('close');
$.messager.alert('请注意', '操作失败:' + e.message, 'error');
}
});
spring mvc接收JSON格式的参数的更多相关文章
- Spring MVC 接收Json格式参数
今天做了一个关于表格排序的功能,可以通过右边的箭头做排序操作,每次操作需要通过Ajax将每条记录的Id数组作为参数去发送请求, 后台Spring MVC接到参数后作更改序号操作. 前端页面发送请求的代 ...
- Spring mvc 返回json格式 - 龙企阁 - 博客频道 - CSDN.NET
第一次使用spring mvc ,在此也算是记录一下以防忘记,希望有经验的朋友指出不足的地方 一.使用maven管理jar. <dependency> <groupId>org ...
- spring mvc返回json格式和json字符串
首先有必要说一下,json和json字符串是不一样的,后者是一个字符串.而json是一个对象 当然如果调用位置是后台程序这几乎没有区别,因为在后台,无论什么格式数据,都是从响应流中读取字符串. 但是在 ...
- Spring MVC返回json格式
在使用SpringMVC框架直接返回json数据给client时,不同的版本号有差异. 以下介绍两种类型的版本号怎样配置. 注意:这两种方法均已验证通过. 1.Spring3.1.x版本号 1.1 d ...
- Spring MVC 接收多个实体参数
在SpringMVC 的接收参数中,如果接收一个实体对象,只需要在方法参数中这样做:@RequestBody User user //单个的时候这样接收 @RequestMapping(value = ...
- spring接收json格式的多个对象参数(变通法)
两种方法 方法1 如果使用spring mvc同客户端通信,完全使用json数据格式,需要如下定义一个RequestMapping @Controller public class TestContr ...
- Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)
题目Spring MVC 接收参数 MapListDate2个BeanJSON Spring MVC接收参数 -Map Spring MVC接收参数 -List Spring MVC接收参数 -dat ...
- 【spring mvc】后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface
后台spring mvc接收List参数报错如下:org.springframework.beans.BeanInstantiationException: Failed to instantiate ...
- 如何让Spring MVC接收的参数可以转换为java对象
场景: web.xml中增加了一个DispatcherServlet配置,并在同级目录下添加了**-servlert.xml文件,搭建起了一个spring mvc的restful访问接口. 问题描述: ...
随机推荐
- thinkphp 分组、页面跳转与ajax
本节课大纲: 一.多应用配置技巧 二.使用分组 三.页面跳转 $this->success('查询成功',U('User/test')); $this->redirect('User/te ...
- VC中关于 0xcccccccc和 0xcdcdcdcd异常
VC在调试时,可能会报“写入位置0xcccccccc 时发生访问冲突”,或者“写入位置0xcdcdcdcd 时发生访问冲突”,这些问题可能是由于使用了未初始化的指针引起的. 在 Debug 模式下,V ...
- MapReduce调度与执行原理之任务调度(续)
前言 :本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉及Hadoop的架构设计,如有兴趣请参考相关 ...
- Linux高性能server编程——Linux网络基础API及应用
Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...
- YouTube为什么打不开?以及简便的訪问的方法/解决方式!
在站点统计中看到好多人通过百度或者谷歌(Google)搜索引擎搜:YouTube怎么上不去,怎样不用代理server訪问YouTube,YouTube上不去的解决的方法,YouTube怎样訪问等等.事 ...
- RadioButton控件
前台代码: <div> <asp:RadioButton ID="RadioButton1" runat="server" GroupName ...
- 利用ant的javac任务来编译程序使用ant的java任务来运行程序
<?xml version="1.0" encoding="UTF-8"?> <project name="javaTest&quo ...
- C-最长回文子串(1)
最长回文子串,就是在字符串中找到最长的对称的子串. s是一个字符串. int max = 0; for(i = 0;i<m;i++) for(j = i;j<m;j++) if(s[i.. ...
- 高级UIKit-02(文件操作)
[day3_1_Sandbox]:沙箱的介绍 snadbox沙箱沙盒 沙箱根目录下的几个文件夹: 1.应用名称.app存放应用程序的素材 2.Documents:存放应用运行时需要用到的数据(关键性数 ...
- 06-UIKit(tableView数据模型)
目录: 一.UIPageControl 二.table view数据模型 三.反向传值给TableView并更新 回到顶部 一.UIPageControl在页面下显示点 1 重要属性 .numberO ...