##1.错误信息
- 415 Unsupported Media Type
- The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.
##2.解决
###2.1.mvc:annotation-driven
在spring-mvc-servlet.xml
文件中增加对mvc:annotation-driven
的配置,如下:
<!-- Spring MVC默认的注解映射的支持 :提供Controller请求转发,json自动转换等功能-->
<mvc:annotation-driven />
<!--开启注解:提供spring容器的一些注解-->
<context:annotation-config/>
##2.2.pom.xml引入jackson包
<jackson.version>2.9.0</jackson.version>
<!--jackson 通过@RquestBody传参时,将对象转换成json格式。
通过@ResponseBody返回值时,将对象转换成json格式-->
<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-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
##2.3.$.ajax指定contentType
//@Requestbody只能处理非application/x-www-form-urlencoded格式的请求,
//所有需要指定其格式为application/json
$.ajax({
type:"POST",
url:url,
data:JSON.stringify(
{name:"张三",sex:"男"}
),
contentType:"application/json; charset=utf-8",
success:function (data) {
console.log(data)
}
});
##2.4.@RequestBody @ResponseBody
@RequestBody
和@ResponseBody
都要有,@RequestBody
用来将JSON字符串
转化成POJO对象
,后者将POJO对象
转化成JSON字符串
。
@PostMapping("/requestbody")
@ResponseBody
public String insert(@RequestBody User user, Model model){
return "/requestannotation/requestbody";
}
##2.5.result