网上已经有很多解决办法了,很多博客也写得清清楚楚的。
然而我遇到的并不是不兼容的问题,而是因为我分开导包了!!!
因为有两个lib库,我没考虑太多,就把jackson的包全放到另一个库里面了,而spring-web却在另一个库里面。所以才导致一直找不到。其实只要把这两个放一起就OK了。。。这确实有点蠢了,但是确实没注意过,而且也没碰到过。
依赖包 jackson-annotations,jackson-core,jackson-databind 这三个是免不了的,
至于springmvc和jackson版本不兼容问题,我没碰到,springmvc是4.3.2的,jackson都是1.9.3的。
再然后就是springmvc配置,网上也是有很多配置,不过不太懂是怎么配的。就找了个能用的。
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<!--json转换器-->
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name = "supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text"/>
<constructor-arg index="1" value="plain"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="*"/>
<constructor-arg index="1" value="*"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text"/>
<constructor-arg index="1" value="*"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="application"/>
<constructor-arg index="1" value="json"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
</list>
</property>
</bean>