交互:两个⽅向
1
)前端到后台:前端
ajax
发送
json
格式字符串,后台直接接收为
pojo
参数,使⽤注解
@RequstBody
2
)后台到前端:后台直接返回
pojo
对象,前端直接接收为
json
对象或者字符串,使⽤注解
@ResponseBody
一. 什么是 Json
Json
是⼀种与语⾔⽆关的数据交互格式,就是⼀种字符串,只是⽤特殊符号
{}
内表示对象、
[]
内表示数组、
""
内是属性或值、:表示后者是前者的值
{"name": "Michael"}
可以理解为是⼀个包含
name
为
Michael
的对象
[{"name": "Michael"},{"name": "Jerry"}]
就表示包含两个对象的数组
二. @ResponseBody注解
@responseBody
注解的作⽤是将
controller
的⽅法返回的对象通过适当的转换器转换为指定的格式之后,写⼊到
response
对象的
body
区,通常⽤来返回
JSON
数据或者是
XML
数据。 注意:在使⽤此注解之
后不会再⾛视图处理器,⽽是直接将数据写⼊到输⼊流中,他的效果等同于通过
response
对象输出指定
格式的数据。
三. 分析Spring MVC 使⽤ Json 交互
所需jar包
<!--json数据交互所需jar,start-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
<!--json数据交互所需jar,end-->
前端jsp⻚⾯及js代码
<div>
<h2>Ajax json交互</h2>
<fieldset>
<input type="button" id="ajaxBtn" value="ajax提交"/>
</fieldset>
</div>
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script>
$(function () {
$("#ajaxBtn").bind("click",function () {
// 发送ajax请求
$.ajax({
url: '/demo/handle07',
type: 'POST',
data: '{"id":"1","name":"李四"}',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
success: function (data) {
alert(data.name);
}
})
})
})
</script>
后台Handler⽅法
@RequestMapping("/handle07")
// 添加@ResponseBody之后,不再走视图解析器那个流程,而是等同于response直接输出数据
public @ResponseBody User handle07(@RequestBody User user) {
// 业务逻辑处理,修改name为张三丰
user.setName("张三丰");
return user;
}