springMvc注解之@ResponseBody和@RequestBody详解
发布时间 - 2026-01-11 01:15:51 点击率:次简介

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的伪表单提交场景
# 的是
# 韦德
# 很好
# 这个时候
# 转化为
# 就会
# 这个问题
# 要把
# 我们可以
# 这样做
# 来看看
# 很不错
# 可以直接
# 只需要
# 会把
# 需要注意
# 大家多多
# 往常
# 不要忘了
# 派上
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
使用豆包 AI 辅助进行简单网页 HTML 结构设计
如何在阿里云部署织梦网站?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
如何用虚拟主机快速搭建网站?详细步骤解析
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何选择可靠的免备案建站服务器?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel怎么在Blade中安全地输出原始HTML内容
简单实现jsp分页
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
高防服务器如何保障网站安全无虞?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何用西部建站助手快速创建专业网站?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
详解Huffman编码算法之Java实现
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
如何登录建站主机?访问步骤全解析
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
Laravel如何保护应用免受CSRF攻击?(原理和示例)
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在腾讯云服务器上快速搭建个人网站?
如何快速搭建二级域名独立网站?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
EditPlus中的正则表达式 实战(4)
Laravel如何为API生成Swagger或OpenAPI文档
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
教你用AI润色文章,让你的文字表达更专业
Android利用动画实现背景逐渐变暗
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
高防服务器租用指南:配置选择与快速部署攻略
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
如何在Windows 2008云服务器安全搭建网站?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】

