json 数据介绍:
JSON数据的数据的格式比较简单,解析比较简单,应用比较多。特别是:手机客户端使用JSON数据交互比较多。
@RequestBody注解用于读取http请求的内容(JSON字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。
@ResponseBody该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端
环境准备 :
Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包
只需要导入其中的3个jar包就可以
配置springMvc配置文件,加上该代码就行了,
<mvc:annotation-driven/>
编写测试代码.....
@RequestMapping("/json")
public @ResponseBody User reciveJson(@RequestBody User user){
//输出打印user 对象
log.info(user.toString());
return user;
}
然后我们写一个简单的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script src="${pageContext.request.contextPath}/js/jquery-1.8.3.min.js"></script>
<script>
$(function () {
//入口函数
// 使用ajax
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/json.action",
//需要配置参数类型,否则会报415错误
contentType:"application/json;charset=utf-8",
data: {
"name": "zs",
"address": "广东省"
},
success: function(msg){
console.log(msg)
}
});
})
</script>
</head>
<body>
</body>
</html>
这里报错了, 400, 嗯 是路径问题 ,映射路径上多加了个斜杠....
@RequestMapping("json")
public @ResponseBody User reciveJson(@RequestBody User user){
//输出打印user 对象
log.info(user.toString());
return user;
}
然后我天真的以为没有问题了,但是现实又给我了一巴掌.....
嗯,找了很久,发现是idea的问题,jar包没有导成功.......解决办法 如图
最后终于响应数据了,,,,有很多坑,多注意一下