介绍
这篇文章将为大家详细讲解有关@ResponseBody于@RequestBody注解在springMvc中的区别有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
springMvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解
<强>添加依赖强>
springMvc对json的处理依赖杰克逊
& lt; dependency> & lt; groupId> org.codehaus.jackson & lt; artifactId> jackson-core-asl & lt; version> 1.9.11 & lt;/dependency> & lt; dependency> & lt; groupId> org.codehaus.jackson & lt; artifactId> jackson-mapper-asl & lt; version> 1.9.11 & lt;/dependency>
<强> xml配置强>
& lt; mvc:注解驱动/在//不要忘了命名空间配置
<强> @ResponseBody 强>
如果传输的是单层json对象,我们后台可以直接用@RequestParam接收
. ajax({美元 类型:“post", 数据类型:“json" url:“/testRequestBody" 数据:{ 名称:“韦德“, 年龄:35 }, 成功:函数(结果){ } });
@RequestMapping (“/testRequestBody") 公共字符串testRequestBody (@RequestParam Map<字符串,Object>地图){ System.out.println(地图);//{name=韦德,35岁=} 返回“index"; }
如果传输的是多层嵌套json对象,这个时候会就会出现数据丢失问题
@ResponseBody很好的解决了这个问题,它会把前台传输过来的json转化为后台对应的对象
. ajax({美元 类型:“post", 数据类型:“json" url:“/testRequestBody" contentType:“应用程序/json" 数据:JSON.stringify ({ 名称:“韦德“, 赢得(2006、2012、2013):, 年龄:35 }), 成功:函数(结果){ } });
@RequestMapping (“/testRequestBody") 公共字符串testRequestBody (@RequestBody Map<字符串,Object>地图){ System.out.println(地图);//{name=韦德,赢得=(2006、2012、2013)=35岁} 返回“index"; }
需要注意的是前台需要指定contentType为“应用程序/json"
同时要把json对象转化为字符串,否则后台不能识别
<强> @ResponseBody 强>
ajax请求返回json格式,往常我们可以这样做
这个时候@ResponseBody就派上用场了,只需要一个注解,全部搞定
. ajax({美元 类型:“post", 数据类型:“json" url:“/testResponseBody" 成功:函数(结果){ console.info(结果); } });@RequestMapping (“/testResponseBody") @ResponseBody 公共Map<字符串,Object>testRequestBody () { Object> Map<字符串;结果=new HashMap<字符串,Object> (); result.put (“name",“韦德“); result.put (“age" 35); 返回结果; }前台控制台输出
{ “age": 35, “name":“韦德“; }<>强总结强>
在网上看到很不错的流程图,作为总结吧
关于@ResponseBody于@RequestBody注解在springMvc中的区别有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
@ResponseBody于@RequestBody注解在springMvc中的区别有哪些