Spring MVC 对 json数据的处理
来源:互联网 发布:淘宝卖龙瞎真的吗 编辑:程序博客网 时间:2024/04/29 06:35
一个困扰我很久的问题~~~~
首先,前台使用js获取了一个id数组, 想要将这个数组,通过JSON.stringify()转化为json字符串,并上传到后台。因为听说Spring MVC可以通过@RequestBody注解,将json数据转化为你想要的类型,如本问题就是直接转化为一个数组
js代码
虽然听说要加上ContentType:'application/json',后台才知道前台请求的数据类型为JSON
function remove() {var items = $("#employee-datagrid").datagrid('getSelections');if(items.length == 0) {$.messager.alert('信息提示','请选择要选中的行!','info')return;} var employees = [];for(var i = 0; i < items.length; i ++)employees.push(items[i].id); $.ajax({type:'post',data:JSON.stringify(employees),url:'${basePath}/employee/delete',/*headers: { 'Accept': 'application/json','Content-Type': 'application/json' }, */ contentType:'application/json',success: function(data) {if(data=='true') { $.messager.alert('信息提示','删除成功!','info') $("#employee-datagrid").datagrid("reload") } else { $.messager.alert('信息提示','哎哟, 产生了一些不可描述的错误!','info') } }, error: function(xhr, textStatus, statusText) { $.messager.alert('信息提示','删除失败!' + xhr.status + " " + xhr.statusText,'info') }});
后台
@PostMapping(value="/delete")@ResponseBodypublic String delete(@RequestBody List<String> employees) {if(employees == null) {return "false";}//log.info("要删除的ID如下:");employees.forEach(e -> {log.info(e);});//Long id = 0L;for(String employeeId : employees) {id = Long.parseLong(employeeId);service.delete(id);}return "true";}
然而并没有卵用~~~~报什么415错误
问题解决
查资料....
无意中在官方文档中,看到这个
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <util:list id="beanList"> <ref bean="stringHttpMessageConverter"/> <ref bean="marshallingHttpMessageConverter"/> </util:list> </property</bean><bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"/><bean id="marshallingHttpMessageConverter" class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"> <property name="marshaller" ref="castorMarshaller"/> <property name="unmarshaller" ref="castorMarshaller"/></bean><bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller"/>意思就是@RequestBody注解会根据请求头的contentType的数据类型来带用不同的转化器,好,那我就把这几个东西加上...
结果又报错..缺少.jackson...包,好,我加。这三个在struct2中可以找到
结果竟然真的的好了....
2017-03-11 15:43:15,436 INFO [http-apr-8080-exec-18] web.EmployeeController (EmployeeController.java:93) - 要删除的ID如下:2017-03-11 15:43:15,437 INFO [http-apr-8080-exec-18] web.EmployeeController (EmployeeController.java:94) - 322017-03-11 15:43:15,437 INFO [http-apr-8080-exec-18] web.EmployeeController (EmployeeController.java:94) - 34
问题分析
可能事情到此就结束了。。。
后来为了,截那个出错的图,就是报415,我把配置文件的那个messageConverter给删了,我就是想截个图让大伙看看,结果发现竟然不报错了,数据仍能够被成功删除...我擦,这不是玩我吗?又行了~~~
运行结果仍正确的瞬间我是懵逼的....不过还好,不知怎么的突然想到。。我可是比原先多导入了三个jar包...
说白了,我的遇到的这个问题就是,对json处理的包没有导入????
JSON数据的发送
@ResponseBody,可以将后台的数据转化为json数据
简单测试如下:
@GetMapping("/greet")@ResponseBodypublic Department greet(String name) {System.out.println(name);Department depart = new Department();depart.setId(100);depart.setName(name);return depart;}在浏览器地址栏输入 .... greet?name=小明
查看信息如下
好的成功。。
0 0
- Spring MVC 对 json数据的处理
- spring mvc对视图解析器controller返回数据转换json的处理的相关配置
- @requestBody:Spring MVC对Json字符串参数的处理(坑)
- spring mvc 对返回json格式数据的支持
- Spring MVC处理JSON数据(1)
- Spring MVC处理JSON数据(2)
- Spring Mvc数据的处理
- spring mvc处理json
- spring mvc对Json的支持
- Spring MVC返回json数据的方法
- Spring MVC返回json数据的方法
- spring mvc返回json 类型的 数据
- Spring MVC接受JSON格式的数据
- Spring MVC返回JSON格式的数据
- Spring MVC接受JSON格式的数据
- Spring MVC返回JSON格式的数据
- spring mvc - 对静态资源的处理
- spring mvc对异步请求的处理
- PHP面试100题汇总
- Retrofit2+Rxjava练手项目_1
- listview的item中显示高度不确定的图片
- 【sklearn】数据预处理(一)
- perl DBI 插入 oracle utf8数据库正确姿势
- Spring MVC 对 json数据的处理
- type of的用法
- GYM 100182 G.Pool Table(枚举)
- 仿知乎日报(5)_主界面内容区加载布局
- foo 、bar、baz是什么意思?
- Oracle篇章系列一:sqlplus概念认知及其启动关闭数据库和用户操作
- USB键盘鼠标协议
- 经典PID控制器的缺陷
- 回到顶部