Springmvc的jar包下载:https://pan.baidu.com/s/1Uu5R96z4LwwtydGq4B60Xg 密码:8c3n
需要额外导入Json的Jar包:jackson-annotations、jackson-core、jackson-databind
ItemController.java(Controller后端控制器,接收Json字符串,发送Json):
package com.xxx.springmvc.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.xxx.springmvc.pojo.Items;
import com.xxx.springmvc.service.ItemService;
//商品管理
@Controller
@RequestMapping(value = "/item")
public class ItemController {
@Autowired
private ItemService itemService;
//json数据交互
@RequestMapping(value = "/json.action")
//@ResponseBody表示自动将返回的对象序列化成Json字符串。
//@RequestBody表示自动将前端传的Json字符串转成对象。
public @ResponseBody Items json(@RequestBody Items items){
System.out.println(items);
return items; //@ResponseBody表示自动将返回的对象序列化成Json字符串返回。 并不会走视图解析器,不会返回页面
}
}
demo.jsp(前端页面,Ajax发送Json字符串):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Demo</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
$(function(){
//params是Json字符串,并不是Json对象。
var params = '{"id": 1,"name": "测试商品","price": 99.9,"detail": "测试商品描述","pic": "123456.jpg"}';
/* $.post("${pageContext.request.contextPath }/item/json.action",params,function(data){ //这种方式发送的参数params是Json格式表示的键值对参数,并不是Json字符串
alert("aaa:"+data.name);
},"json"); */
$.ajax({
url : "${pageContext.request.contextPath }/item/json.action",
data : params, //Json字符串;并不是Json对象表示的键值对参数。
contentType : "application/json;charset=UTF-8",//指定发送数据的格式为Json字符串。默认是Json格式表示的键值对参数。
type : "post",
dataType : "json", //回调函数中,参数data的类型(自动将Json字符串反序列化成Json对象)。
success : function(data){
alert(data.name);
}
});
});
</script>
</head>
<body>
</body>
</html>