首先回顾下,原来处理异步的方式
前端
$.post(url,params,function(data){},"json");---------------------$.ajax()
后端
接收请求 req.getParameter()--------------------------------------@RequestBody接收请求
返回响应 user对象
user--->json---->resp.getWriter().write(json)-------------------@ResponseBody返回响应
在SpringMVC中,这个功能主要是通过两个注解@RequestBody和@ResponseBody实现的
* @RequestBody用于接收前端传递的请求体中的json数据,并可以自动转换封装进指定的对象中。
* @ResponseBody用于将controller方法返回的对象通过转换器转换为指定的格式( 通常为json )之后,再写回响应。
==注意: Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包==
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
页面
发送一个ajax
<%--script标签不能自闭合--%>
<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.js"></script>
<script>
$("#btn").click(function () {//绑定点击事件
//触发ajax请求
$.ajax({
type: "POST",//请求方式
url: "${pageContext.request.contextPath}/demoController/demo18",//请求地址
contentType: "application/json",//指定请求参数的格式为json
dataType: "json",//指定返回数据的格式为json
data: '[{"username":"张三","age":18},{"username":"李四","age":19}]',//请求参数
success: function (data) {//回调函数
console.log(data);
}
});
})
</script>
后台
1.接收参数
2.返回响应