1.页面传递json数据,ajax传递
jsp
<script type="text/javascript">
$(document).ready(function(){
$("#add").click(function(){
var userName = $("#userName").attr("value");
var age =$("#age").attr("value");
var user = {userName:userName,age:age};
$.ajax({
url:"/springMVC1/test/json/addUser",
type:"post",
data:user,
success:function(a){
alert("userName:" + a.userName + " age:" + a.age );
}
});
});
});
</script>
</head>
<body>
姓名:<input type="text" id="userName" name="userName"><br>
年龄:<input type="text" id="age" name="age"><br>
<input type="button" id="add" value="添加">
</body>
controller
@Controller
@RequestMapping("/test/json")
public class TestJson {
@RequestMapping("/addUser")// /test/json/addUser
public void addUserJson(User user,HttpServletRequest request,HttpServletResponse response){
//{"username":"userName","age","age"}也可以用对象转化json类来实现
String result = "{\"userName\":\" "+ user.getUserName() +" \",\"age\":\" "+ user.getAge()+" \"}";
PrintWriter out = null;
response.setContentType("application/json");
try {
out = response.getWriter();
out.write(result);
} catch (IOException e) {
e.printStackTrace();
}
}
2.使用@RequestBody,@ResponseBody来传递json
1)需要引入2个包
jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
2.springMVC 配置只要引入注解就OK< mvc:annotation-driven />
3页面配置
<script type="text/javascript">
//请求json响应json
function requestjson(){
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/jsonToJson',
contentType:'application/json;charset=utf-8',
data:'{"name":"李四","age":22}',//json串
success:function(data){
alert(data.name);
//有打印李四
}
});
}
//请求key/value响应json
function responsejson(){
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/KVToJson',
data:'name=李四&age=23',//key/value
success:function(data){
alert(data.name);
//有打印李四
}
});
}
</script>
<title>json测试 </title>
</head>
<body>
<input type="button" value="请求json 返回json" onclick="requestjson()"/>
<input type="button" value="请求key/value 返回json" onclick="responsejson()"/>
</body>
controller
//请求json响应json
@RequestMapping("/jsonToJson")
public @ResponseBody User jsonToJson(@RequestBody User user)throws Exception{
//ResponseBody 将user转为json格式
//RequestBody 将json格式转为user
return user;
}
//请求key/value响应json
@RequestMapping("/KVToJson")
public @ResponseBody User KVToJson(User user)throws Exception{
//ResponseBody 将user转为json格式
return user;
}
3 对象转为json,返回给页面
JSONObject jo=new JSONObject();
jo.put("bulidTree", bulidTree);
// StringUtil.StringToJson(jo.toString());
return StringUtil.StringToJson(jo.toString());
public class ResponseUtils {
//发送内容
public static void render(HttpServletResponse response,String contentType,String text){
response.setContentType(contentType);
try {
response.getWriter().write(text);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//发送的是JSON
public static void renderJson(HttpServletResponse response,String text){
render(response, "application/json;charset=UTF-8", text);
}
//发送xml
public static void renderXml(HttpServletResponse response,String text){
render(response, "text/xml;charset=UTF-8", text);
}
//发送text
public static void renderText(HttpServletResponse response,String text){
render(response, "text/plain;charset=UTF-8", text);
}
}