【Java Web开发学习】Spring MVC 使用HTTP信息转换器
【Java Web开发学习】Spring MVC 使用HTTP信息转换器
转载:https://www.cnblogs.com/yangchongxing/p/10186429.html
@ResponseBody和@RequestBody是启用消息转换的一种简洁和强大方式
消息转换(message conversion)提供了一种更为直接的方式,它能够将控制器产生的数据转换为服务于客户端的表述形式。
择MappingJacksonHttpMessageConverter或MappingJackson2HttpMessageConverter
produces仅处理客户端Accept头部信息表明它接口application/json类型结果的请求,并且Jackson JSON在类路径下。消息转换器会将控制器返回的结果转换为JSON文档。
consumes仅处理客户端ContentType头部信息是application/json的请求,并且Jackson JSON在类路径下。消息转换器会将请求的JSON文档转换为控制器对象。
@RestController Spring将会为处理器的所有方法消息转换功能。
@RequestBody查找一个消息转换器,将来自客户端的资源表述转换为对象。
@RestController public class IndexController { @RequestMapping(value="/person", consumes="application/json", produces="application/json") @ResponseBody public Map<String, String> person(@RequestBody Person person) throws IOException { System.out.println(person); Map<String, String> data = new HashMap<String, String>(); data.put("status", "ok"); return data; } }
bean
public class Person { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
测试html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="node_modules/vue/dist/vue.js"></script> <script src="node_modules/vue-resource/dist/vue-resource.js"></script> <title>Document</title> </head> <body> <div id="app"> <button type="button" value="click" @click="get()">click</button> </div> <script> Vue.http.options.emulateJSON = true; new Vue({ el:"#app", methods:{ get:function(){ var person = {name:'tom',sex:'boy'}; this.$http.post( 'http://localhost:8080/mvc/person', person, { emulateJSON:false}) .then(function(res){ alert(res.data); },function(res){ console.log(res); }); } } }) </script> </body> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端