springmvc实现json交互-requestBody和responseBody
json数据交互
1.为什么要进行json数据交互
json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。
比如:webservice接口,传输json数据。
2.springmvc进行json交互
(1)请求json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便。
(2)请求关键/价值,输出json。此方法比较常用。
3.环境准备
3.1加载json转的冲突包
springmvc中使用杰克逊的包进行json转换(@requestBody和@responseBody使用下边的包进行json转),如下:
杰克逊-核心-美国手语-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
@RequestBody作用:
@RequestBody注解用于读取超文本传送协议(超文本传输协议的缩写)请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到控制器方法的参数上。
本例子应用:
@RequestBody注解实现接收超文本传送协议(超文本传输协议的缩写)请求的json数据,将json数据转换为爪哇岛对象
@ResponseBody作用:
该注解用于将控制器的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过反应响应给客户端
本例子应用:
@ResponseBody注解实现将控制器方法返回对象转换为json响应给客户端
3.2配置json转换器
在注解适配器中加入消息转换器
!-注解适配器比恩类=' org。弹簧框架。网络。servlet。MVC。方法。注释。requestmappinhandleradapter '属性名='消息转换器'列表豆类=' org。弹簧框架。http。转换器。JSON。mapping jacksonhtmessageconverter '/bean/list/property/bean注意:如果使用MVC :注释驱动/则不用定义上边的内容。
4.json交互测试
4.1输入json串,输出是json串
4.1.1jsp页面
使用jquery的创建交互式、快速动态网页应用的网页开发技术提交json串,对输出的json结果进行解析。
使用jduery别忘记引入jquery-1.4.4.min.js
“% @”页面语言=“Java”导入=“Java”。乌提尔。*“页面编码=”utf-8“% % String path=request。getcontextpath();字符串基本路径=请求。getscheme()' ://'请求。getservername()“:”请求。getserverport()“path ”/;% !DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' HTML头基href=' %=基路径% ' rel='外部无跟随' rel='外部无跟随' title JSON交互测试/title脚本类型=' text/JAVAScript ' src=' http : $ { page context。请求。上下文路径}/js/jquery-1。4 .4 .量滴js /脚本脚本类型='text/javascript' //请求的是json,输出的是json函数reuqestJson(){ $ .ajax({ type:'post ',URL : ' $ { page context。请求。上下文路径}/请求JSON。动作',内容类型: '应用/JSON;charset=utf-8 ',//数据格式是json串,商品信息数据:“{ name”:手机,' price':999} ',success:function(数据){//返回json结果警报(数据);} });}/脚本/头体输入类型=' button ' onclick=' reuqestJson()' value='请求的是json,输出的是JSON '/body/html 4。1 .2控制器
包裹cn。edu。hpu。SSM。控制器;导入组织。弹簧框架。刻板印象。控制器;导入组织。弹簧框架。网络。绑定。注释。RequestBody导入组织。弹簧框架。网络。绑定。注释。请求映射;导入组织。弹簧框架。网络。绑定。注释。反应体;导入cn。edu。hpu。SSM。阿宝。自定义项目;//json交互测试@控制器公共类JsonText { //请求json(商品信息),输出json(商品信息)//@RequestBody将请求的商品信息的json串转成项目自定义对象//@ResponseBody将项目自定义转成json格式输出@ request mapping('/request JSON ')public @ response body items自定义request JSON(@ request body items自定义项){//@ response body将项目自定义转成json格式输出返回itemsCustom} } 4.1.3测试结果
4.2输入键/值,输出是json串
4.2.1jsp页面
使用jquery的创建交互式、快速动态网页应用的网页开发技术提交密钥/值串,对输出的json结果进行解析。
“% @”页面语言=“Java”导入=“Java”。乌提尔。*“页面编码=”utf-8“% % String path=request。getcontextpath();字符串基本路径=请求。getscheme()' ://'请求。getservername()“:”请求。getserverport()“path ”/;% !DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' HTML head base href=' %=base path % ' rel=' external no follow ' rel=' external no follow ' meta http-equiv=' Content-Type ' Content=' text/HTML;charset=UTF-8' titlejson交互测试/title脚本类型=' text/JAVAScript ' src=' http : $ { page context。请求。上下文路径}/js/jquery-1。4 .4 .量滴js /脚本脚本类型='text/javascript' //请求是键/值,输出是json函数responseJson(){ $ .ajax({ type:'post ',URL : ' $ { page context。请求。上下文路径}/响应JSON。操作',//请求的是键/值,这里不需要指定contentType,因为默认就是密钥/值类型//contentType: '应用程序/JSON;charset=utf-8 ',//数据格式是json串,商品信息"数据: "名称=手机价格=999 ',成功:功能(数据){//返回json结果警报(数据);} });}/脚本/头体输入类型=' button ' onclick=' request JSON()' value='请求的是键/值,输出的是JSON '/body/html 4。2 .2控制器
包裹cn。edu。hpu。SSM。控制器;导入组织。弹簧框架。刻板印象。控制器;导入组织。弹簧框架。网络。绑定。注释。RequestBody导入组织。弹簧框架。网络。绑定。注释。请求映射;导入组织。弹簧框架。网络。绑定。注释。反应体;导入cn。edu。hpu。SSM。阿宝。自定义项目;//json交互测试@控制器公共类JsonText { //请求键/值(商品信息),输出json(商品信息)@请求映射('/response JSON ')public @ response body items自定义响应JSON(items自定义项自定义){//@ response body将项目自定义转成json格式输出System.out.println('前台传过来得商品名: '物品定制。getname());返回itemsCustom} } 4.2.3测试
后台控制台输出了'前台传过来的商品名:手机,且查看超文本传送协议(超文本传输协议的缩写)数据可以看到json数据的反馈。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
版权声明:springmvc实现json交互-requestBody和responseBody是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。