【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>

最新文章

  1. Jmeter实现登录bugfree、新建bug、解决bug脚本(抓包工具实现)
  2. centos6.6 安装jdk1.7
  3. 003-Tuple、Array、Map与文件操作入门实战
  4. c语言的学习秘籍
  5. javascript的队列,优先队列,循环队列
  6. 提高你的C#程序编码质量
  7. 1.C#基础篇--&gt;封装、继承和多态
  8. 收集内存信息(总量、可用、已用、百分比)导出到csv
  9. Sequence operation(线段树区间多种操作)
  10. lua 安装配置
  11. 利用PHP SOAP扩展实现简单Web Services
  12. ios的300ms点击延时问题
  13. angular学习笔记02 angular指令大全
  14. TensorFlow与OpenCV,读取图片,进行简单操作并显示
  15. C++ WString与String互相转换
  16. (原创)odoo在docker环境下无法备份
  17. HTTPS加密过程分析
  18. java crm 进销存 springmvc SSM 项目 源码 系统
  19. selenium自动化之切换iframe
  20. Windows Server 2012/2012 R2:安装和配置 SMTP 服务器

热门文章

  1. nyoj 204-Coin Test (python count)
  2. 用java实现“钉钉微应用,免登进入某H5系统首页“功能”
  3. Oracle数据库索引
  4. ASP.NET Core +Highchart+ajax绘制动态柱状图
  5. PHP基于Redis实现轻量级延迟队列
  6. Mybatis工作流程源码分析
  7. Xamarin.Forms学习系列之Android集成极光推送
  8. Vue组件通信之非父子组件传值
  9. 动态规划算法(java)
  10. PHP的常用字符串处理