初见SpringMVC之json交互
JSON数据是一种存储数据的格式,前后台之间通过json数据进行交互是非常常见的应用场景。SprinMVC提供了JSON数据的支持,可以将携带的json字符串转换成java对象,也可将java对象转换成json字符串。
1.导入JSON相关的包
图 1.1 完成json数据转换需要的包
2.SpringMVC将json转换成java对象
(1)在WebConten目录下,创建一个json.html,该html中,利用ajax完成发送网络请求,并且携带的参数是json数据。
<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<scripttype="text/javascript" src="http://localhost:8080/HelloSpringMV/js/jquery-1.11.3.min.js"></script>
<title>hiJson</title>
<scripttype="text/javascript">
functionhelloJson(){
alert("发送请求");
var userName = $("#userName").val();
var password =$("#password").val();
$.ajax({
url:"http://localhost:8080/HelloSpringMV/helloJson",
type:"post",
data:JSON.stringify({userName:userName,password:password}),
asyn:false,
success:function(data){
alert(data.userName);
alert(data.password);
},
dataType:"json",
contentType:"application/json;charset=UTF-8"
});
}
</script>
</head>
<body>
用户名<input type="text" name="userName"id="userName"></input></br>
密码 <input type="text"name="password" id="password"></input></br>
<input type="button" value="提交" οnclick="helloJson()"></input>
</body>
</html>
(2)创建一盒名为JsonController的handler类
@Controller
public class JsonController {
@RequestMapping("/helloJson")
publicString HelloJson(@RequestBody User user){
System.out.print(user.toString());
return "success";
}
}
从上述代码可以看见一个新出现的注解,@RequestBody,假如需要将请求参数中的json字符串转换成java对象,就需要配置如下注解。
(3)springmvc-config.xml文件中,添加一行配置
<!-- 配置注解驱动 -->
<mvc:annotation-driven />
(4)测试,在浏览器中访http://localhost:8080/HelloSpringMV/json.html
图2.1 提交请求
图2.2服务控制台打印结果
3.SpringMVC将java对象转换成json字符串
(1)在jsonConroller类中添加一个方法,在方法上面添加@ResponseBody注解,即可将方法的返回对象转换成json数据
@ResponseBody
@RequestMapping(value="/helloJson1")
publicUser HelloJson1(){
User user = new User();
user.userName="SmartTu";
user.password="123";
returnuser;
}
(2)测试,访问这个urlhttp://localhost:8080/HelloSpringMV/helloJson1
图3.1返回结果
从图3.1中可以发现Spring已经将User对象转成成json字符串返回了