springmvc之发送json数据自动转Java对象接收
1、导包
- 基于maven
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
2、jsp代码
<script>
$(function () {
$.ajax({
url:"${pageContext.servletContext.contextPath}/user/json",
data:JSON.stringify({"username":"tom"}),//JSON.stringify()必须有,否则只会当做表单的格式提交
dataType:"json",
type:"post",
contentType:"application/json;charset=utf-8", //如果想以json格式把数据提交到后台的话,这个必须有,否则只会当做表单提交
success:function (data) {
}
});
});
</script>
3、控制器代码
/**
* json转对象
*/
@RequestMapping("/json")
public void jsonToObject(@RequestBody(required = false) User user){
System.out.println("--------");
System.out.println(user);
}
4、配置json转换器
如果不使用注解驱动<mvc:annotation-driven />,就需要给处理器适配器配置json转换器
在springmvc.xml配置文件中,给处理器适配器加入json转换器:
<!--处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>