本人刚学ssm,遇到此错误肯定是第一时间百度,无奈,找不到解决的方法
错误:org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'ap
需求:将前端的数据通过json传给后台,后台用注解@RequestBody 解析到itemsCustomTest对象里面,然后将itemsCustomTest又包装成json返回给前端页面,alert输出结果
预期结果:Object object
/*
*<p>Description:商品类的Test</p>
*@author running.fjr
*@date 2017年7月25日下午1:57:38
*/
public class ItemsCustomTest {
// private Integer id;
private String name;
private int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "ItemsCustomTest [name=" + name + ", price=" + price + "]";
}
}
/*
*<p>Title:cn.itcast.ssm.controller</p>
*<p>Description:json交互测试</p>
*@author running.fjr
*@date 2017年7月30日下午3:11:31
*/
@Controller
public class JsonTest {
//请求json,输出json
//@RequestBody将请求的商品信息的json串,转成itemsCustomTest对象
//@ResponseBody将itemsCustomTest转成json输出
@RequestMapping("/requestJson")
public @ResponseBody ItemsCustomTest requestJson(@RequestBody ItemsCustomTest itemsCustomTest)throws Exception{
//@ResponseBody将itemsCustom转成json输出
System.out.println("输出:"+itemsCustomTest);
return itemsCustomTest;
}
}
/*
测试页面
*/
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>json交互的测试</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
//请求json,输出json
function requestJson(){
$.ajax({
type:'post',
url:'${pageContext.request.contextPath}/requestJson.action',
contentType:"application/json",
dataType:'json',
//数据格式是json串,商品信息
//接收用@requestBody
data:JSON.stringify({name:"手机",price:999}),
success:function(data){//返回json结果
alert(data);
}
});
}
</script>
</head>
<body>
<input type="button" οnclick="requestJson()" value="请求json,输出json"/>
</body>
</html>
错误解决:网上有一些其他的方法,其实代码本身没有错误,我们在排除代码没有错误后就应该想到是不是依赖包导入有问题,没错就是依赖包导入有问题,当初学习的时候,使用的整个环境是spring3.2,后来由于我的jdk8版本过高,不得以换成spring4.3,然而其他的jar包并没有更新,所以导致了这个错误,解决方法,将整个换进全部换成spring4.3的依赖包,,结果解决了。