由于基础不好,本人现在自学Java EE的Spring MVC的时候,对于其配置一直感到比较难,所以今天终于将Spring MVC 3.0的json配置成功后,我决定记一笔以备将来温习。
我昨天和今天早上碰到的问题是前端Ajax一直fail报406的错,百度一把后借鉴了很多网友的笔记,另外特别是下面这位网友的笔记对我帮助最大,如果您也碰到类似的406报错,并且您使用的是4.X的Spring MVC, 请参考他的笔记:
https://blog.csdn.net/a116475939/article/details/50588364
好了,闲话少说直接将我的配置文件贴出来供大家参考。请大家注意我是用的Spring MVC 3.0的Maven配置。
pom.xml:
<!-- jackson start -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-lgpl</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-lgpl</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.6</version>
</dependency>
<!-- jackson end -->
spring-servlet.xml:
<!-- 加入json支持 -->
<mvc:annotation-driven />
<!-- 处理请求response返回值,如下配置能正确返回字符串型返回值,如返回值为对象,则自动转为json -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8</value>
<value>text/html; charset=UTF-8</value>
</list>
</property>
</bean>
<bean id="mappingStringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean id="handleAdapter"
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
</list>
</property>
</bean>
其实就是这么简单的在这2个文件上配置后就可以了。