SpringMVC之json数据传递
json是一种常见的传递格式,是一种键值对应的格式。并且数据大小会比较小,方便传递。所以在开发中经常会用到json。
首先看一下json的格式:
{key1:value1,key2:value2}
每一个建对应一个值,每个键值对之间用逗号连接。并且最后一个键值对之后没有逗号,整体需要有大括号括起来。
SpringMVC的前台获取json代码:
annotationTest.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'annotationTest.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="/Spring6Annotation3/js/jquery-1.7.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
$("#submit").click(
function(){
var username = $("#username").attr("value");
var userage = $("#userage").attr("value");
var userJson={name:username,age:userage};//构造json数据
$.ajax({
url:"/Spring6Annotation3/user/data/showInfoJson",
type:"post",
data:userJson,
success: function(data){
alert("name===>"+data.username+"age"+data.userage);
}//由此我们可以看出,jquary中的ajax也是json格式的
});
});
});
</script>
<body>
<h1>json</h1>
<br/>
<form action="">
姓名:<input type="text" id="username" name="name"/>
年龄:<input type="text" id="userage" name="age"/>
<input type="button" id="submit" value="提交"/>
</form>
</body>
</html>
在controller中
@RequestMapping("/showInfoJson")
public void showInfoJson(User user,HttpServletRequest request,HttpServletResponse response){
String result = "{\"username\":\""+user.getName()+"\",\"userage\":\""+user.getAge()+"\"}";//user接到前台传到的数据,并拼接成新的json对象
response.setContentType("application/json");//设置response的传输格式为json
System.out.println(result);
try {
PrintWriter out = response.getWriter();
out.write(result)//给页面上传输json对象
} catch (IOException e) {
e.printStackTrace();
}
}