<mvc:annotation-driven/>初始化7個轉換器
html
ByteArrayHttpMessageConverter spring
StringHttpMessageConverter json
ResourceHttpMessageConverter mvc
SourceHttpMessageConverter app
XmlAwareFormHttpMessageConverter 函數
Jaxb2RootElementHttpMessageConverter spa
MappingJacksonHttpMessageConvertercode
對於json的解析就是經過MappingJacksonHttpMessageConverter轉換器完成的。orm
只添加<mvc:annotation-driven />還不行,須要在classpath環境中能找到Jackson包xml
Jackson包Maven配置
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.4</version> </dependency>
以前看資料有說過spring4.x以後就須要配置MappingJackson2HttpMessageConverter而不是默認的MappingJacksonHttpMessageConverter。而相應的jar包也須要使用對應的2.x版本
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> <!--注入的message-converters優先級高於默認注入的json轉換器--> </mvc:annotation-driven>
注意:默認狀況下MappingJacksonHttpMessageConverter 會設置content爲application/json,在IE9下返回會出現提示下載的現象,出現這種狀況能夠手動指定頭信息爲"text/html",或者"/"(全部,不肯定就設置爲這個)。
當只設置了"text/html"時,我試驗的時候Ajax回調函數接收json值的時候不行,確實是傳遞過來了,可是也許是轉換出了問題,因此在上面還加了個「application/json」就能夠了。。。。。
固然也能夠用fastjson,不過依賴的jar包就不同了,並且配置消息處理器的方式也是須要本身添加的。