@ResponseBody 为把返回的参数解析成为JSON格式
@RequestBody为把传入的JSON格式的参数对应是参数的bean中
pom.xml 配置
<properties>
<jackson.version>2.8.5</jackson.version>
</properties>
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
配置转换器
<!-- 注解映射器和注解适配器 -->
<!-- Enables the Spring MVC @Controller programming model -->
<mvc:annotation-driven conversion-service="conversionService">
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
例如下面为控制类
package cn.itcast.ssm.controller;
import cn.itcast.ssm.po.ItemsCustom;
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;
@Controller
public class JsonTest {
@RequestMapping("/requestJson")
//@ResponseBody将itemsCustom的信息返回成json格式
//@RequestBody将请求的商品信息的json格式的字符串返回到itemsCustom中
@ResponseBody
public ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom){
return itemsCustom;
}
@RequestMapping("/responeJson")
//@ResponseBody将itemsCustom的信息返回成json格式
//请求 key value 模式
@ResponseBody
public ItemsCustom responeJson(ItemsCustom itemsCustom){
return itemsCustom;
}
}
下面为测试JSP页面代码
<%--
Created by IntelliJ IDEA.
Date: 2017/3/25
Time: 21:57
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<script type="application/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script>
<script type="application/javascript">
function requestJson() {
var baseUrl = '${pageContext.request.contextPath}/requestJson.action';
$.ajax({
type:'post',
url : baseUrl,
contentType:'application/json',
data:'{"name":"手机","price":"9999"}',
success:function(data){
alert(data);
}
});
}
function responeJson() {
var baseUrl = '${pageContext.request.contextPath}/responeJson.action';
$.ajax({
type:'post',
url : baseUrl,
//contentType:'application/json', 默认就是key value类型
data:'name=手机&price=999',
success:function(data){
alert(data.name);
}
});
}
</script>
<head>
<title>Json Test</title>
</head>
<body>
<input type="button" onclick="requestJson()" value="请求json,输出json"/>
<input type="button" onclick="responeJson()" value="请求key vale ,输出json"/>
</body>
</html>