全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

springMvc注解之@ResponseBody和@RequestBody详解

简介

springmvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解

添加依赖

springmvc对json的处理依赖jackson

<dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-core-asl</artifactId>
  <version>1.9.11</version>
</dependency>
<dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-mapper-asl</artifactId>
  <version>1.9.11</version>
</dependency>

xml配置

<mvc:annotation-driven />//不要忘了命名空间配置

@ResponseBody

如果传输的是单层json对象,我们后台可以直接用 @RequestParam接收

$.ajax({
  type : "post",
  dataType : "json",
  url : "/testRequestBody",
  data:{
    name:"韦德",
    age:35
  },
  success : function(result) {
  }
});
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestParam Map<String, Object> map) {
 System.out.println(map);// {name=韦德, age=35}
 return "index";
}

如果传输的是多层嵌套json对象,这个时候会就会出现数据丢失问题

@ResponseBody很好的解决了这个问题,它会把前台传输过来的json转化为后台对应的对象

$.ajax({
  type : "post",
  dataType : "json",
  url : "/testRequestBody",
  contentType:"application/json",  
  data:JSON.stringify({
    name:"韦德",
    win:[2006,2012,2013],
    age:35
  }),
  success : function(result) {
  }
});

@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody Map<String, Object> map) {
 System.out.println(map);//{name=韦德, win=[2006, 2012, 2013], age=35}
 return "index";
}

需要注意的是前台需要指定contentType为"application/json"

同时要把json对象转化为String,否则后台不能识别

@ResponseBody

ajax请求返回json格式,往常我们可以这样做

private void writeJson(HttpServletResponse response, Object object) {
 String json = JSON.toJSONString(object);
 response.setCharacterEncoding("UTF-8");
 response.setContentType("application/json; charset=utf-8");
 PrintWriter out = null;
 try {
  out = response.getWriter();
  out.write(json);
 } catch (IOException e) {
  e.printStackTrace();
 } finally {
  if (out != null) {
   out.close();
  }
 }
}

这个时候 @ResponseBody就派上用场了,只需要一个注解,全部搞定

$.ajax({
  type : "post",
  dataType : "json",
  url : "/testResponseBody",
  success : function(result) {
    console.info(result);
  }
});

@RequestMapping("/testResponseBody")
@ResponseBody
public Map<String, Object> testRequestBody() {
 Map<String, Object> result = new HashMap<String, Object>();
 result.put("name", "韦德");
 result.put("age", 35);
 return result;
}

前台console输出

{
  "age": 35,
  "name": "韦德"
}

总结

在网上看到很不错的流程图,作为总结吧

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# responsebody注解  # requestbody注解  # responsebody注解作用  # 解读@RequestBody的正确使用方法  # 快速解决SpringMVC @RequestBody 用map接收请求参数的问题  # 详解SpringMVC @RequestBody接收Json对象字符串  # @ResponseBody 和 @RequestBody 注解的区别  # SpringMVC restful 注解之@RequestBody进行json与object转换  # springmvc @RequestBody String类型参数的使用  # 关于Springboot | @RequestBody 接收到的参数对象属性为空的问题  # Springboot拦截器如何获取@RequestBody参数  # 亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决  # SpringBoot中@RequestBody的伪表单提交场景  # 的是  # 韦德  # 很好  # 这个时候  # 转化为  # 就会  # 这个问题  # 要把  # 我们可以  # 这样做  # 来看看  # 很不错  # 可以直接  # 只需要  # 会把  # 需要注意  # 大家多多  # 往常  # 不要忘了  # 派上 


相关文章: 如何在云虚拟主机上快速搭建个人网站?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  制作公司内部网站有哪些,内网如何建网站?  如何选择域名并搭建高效网站?  如何访问已购建站主机并解决登录问题?  如何用狗爹虚拟主机快速搭建网站?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何在阿里云香港服务器快速搭建网站?  建站之星代理平台如何选择最佳方案?  如何在IIS管理器中快速创建并配置网站?  制作电商网页,电商供应链怎么做?  建站VPS能否同时实现高效与安全翻墙?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  建站之星×万网:智能建站系统+自助建站平台一键生成  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  已有域名如何免费搭建网站?  css网站制作参考文献有哪些,易聊怎么注册?  建站之星各版本价格是多少?  如何快速选择适合个人网站的云服务器配置?  定制建站如何定义?其核心优势是什么?  宝塔新建站点为何无法访问?如何排查?  微信h5制作网站有哪些,免费微信H5页面制作工具?  网站制作公司排行榜,抖音怎样做个人官方网站  建站之星客服服务时间及联系方式如何?  建站主机空间推荐 高性价比配置与快速部署方案解析  家庭建站与云服务器建站,如何选择更优?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  如何通过免费商城建站系统源码自定义网站主题与功能?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  香港服务器选型指南:免备案配置与高效建站方案解析  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何在景安服务器上快速搭建个人网站?  网站制作壁纸教程视频,电脑壁纸网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  淘宝制作网站有哪些,淘宝网官网主页?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  香港服务器租用每月最低只需15元?  建站之星如何快速生成多端适配网站?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  如何制作一个表白网站视频,关于勇敢表白的小标题?  常州企业建站如何选择最佳模板?  ,石家庄四十八中学官网?  网站企业制作流程,用什么语言做企业网站比较好?  如何零基础开发自助建站系统?完整教程解析  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  如何通过多用户协作模板快速搭建高效企业网站?  网站微信制作软件,如何制作微信链接?  如何确认建站备案号应放置的具体位置?  如何在建站之星网店版论坛获取技术支持? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。