初见SpringMVC之json交互
JSON数据是一种存储数据的格式,前后台之间通过json数据进行交互是非常常见的应用场景。SprinMVC提供了JSON数据的支持,可以将携带的json字符串转换成java对象,也可将java对象转换成json字符串。
-
导入JSON相关的包
-
SpringMVC将json转换成java对象
- 在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="提交" onclick="helloJson()"></input>
</body>
</html>
- 创建一个名为JsonController的handler类
@Controller
public class JsonController {
@RequestMapping("/helloJson")
publicString HelloJson(@RequestBody User user){
System.out.print(user.toString());
return "success";
}
}
从上述代码可以看见一个新出现的注解,@RequestBody,假如需要将请求参数中的json字符串转换成java对象,就需要配置如下注解。
- springmvc-config.xml文件中,添加一行配置
<!-- 配置注解驱动 -->
<mvc:annotation-driven />
- 测试,在浏览器中访
http://localhost:8080/HelloSpringMV/json.html
-
SpringMVC将java对象转换成json字符串
- 在jsonConroller类中添加一个方法,在方法上面添加@ResponseBody注解,即可将方法的返回对象转换成json数据
@ResponseBody
@RequestMapping(value="/helloJson1")
publicUser HelloJson1(){
User user = new User();
user.userName="SmartTu";
user.password="123";
returnuser;
}
- 测试,访问这个url
http://localhost:8080/HelloSpringMV/helloJson1
从图3.1中可以发现Spring已经将User对象转成成json字符串返回了
Reference:
[1] JavaEE企业级应用开发教程[M] 2017.黑马程序员编著
[2] csdn博客 https://blog.csdn.net/qq_30322803/article/details/78586502