1.发送ajax请求
$.ajax({ url:"user/testAjax", contentType:"application/json;charset=UTF-8", data:"{"name":"ethan","age":"123"}", dataType:"json", type:"post", success:function(data){ console.log(data); } });
2.编写controller代码
@Controller @ResquestMapping("user") public class UserController{ public void testAjax(@RequestBody String str){//接收客户端发送的ajax请求中的json字符串 System.out.println(str); } }
3.将接受的请求转换成对象
@Controller @ResquestMapping("user") public class UserController{ public void testAjax(@RequestBody User user){//接收客户端发送的ajax请求中的json字符串,后端自动转换为User对象 System.out.println(user); } }
4.返回(响应)JavaBean(user对象)
@Controller @ResquestMapping("user") public class UserController{ public @ResponseBody User testAjax(@RequestBody User user){//接收客户端发送的ajax请求中的json字符串,后端自动转换为User对象 System.out.println(user); user.setName("tom"); user.setAge("12"); //返回user对象 return user; } }
总结:
1.RequestBody 获取请求体的内容,get请求不使用
2.ResponseBody 该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端
注意:
Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包。
json字符串和JavaBean对象互相转换的过程中,需要使用jackson的jar包