使用spring4.0和4.1注解返回json格式的數據的兩種實現方式


開發環境:myeclipse2015、tomcat8.0、jdk1.8

1、使用spring4.0.2.RELEASE、jackson1.9.13,pom.xml配置:

 1 <properties>
 2       <!-- <spring.version>4.0.2.RELEASE</spring.version> -->
 3       <spring.version>4.1.1.RELEASE</spring.version>
 4       <mybatis.version>3.2.6</mybatis.version>
 5       <slf4j.version>1.7.7</slf4j.version>
 6       <log4j.version>1.2.17</log4j.version>
 7       <jackson.version>2.4.4</jackson.version>
 8 </properties>
 9 <dependencies>
10 <dependency>
11     <groupId>org.codehaus.jackson</groupId>
12         <artifactId>jackson-core-asl</artifactId>
13         <version>1.9.13</version>
14     </dependency>
15     <dependency>
16         <groupId>org.codehaus.jackson</groupId>
17         <artifactId>jackson-mapper-asl</artifactId>
18         <version>1.9.13</version>
19     </dependency>
20 </dependencies>

然后使用spring mvc的默認配置即可返回json,為了避免IE執行ajax時,返回json出現下載文件的問題,spring-mvc.xml可使用如下配置:

<!-- 避免IE執行ajax時,返回json出現下載文件 -->
<bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean> -->

    <!-- 啟動SpringMVC的注解功能,完成請求和注解POJO的映射 -->
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <!-- json轉換器 -->
                <ref bean="mappingJacksonHttpMessageConverter" />
            </list>
        </property>
    </bean>

 

2、使用spring4.1.1.RELEASE、jackson2.4.4

    <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>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>

spring-mvc.xml配置:

<!-- 避免IE執行ajax時,返回json出現下載文件 -->
<bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean> -->

    <!-- 啟動SpringMVC的注解功能,完成請求和注解POJO的映射 -->
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <!-- json轉換器 -->
                <ref bean="mappingJacksonHttpMessageConverter" />
            </list>
        </property>
    </bean>

其中:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter與spring4.0的配置不同,使用的MappingJackson2HttpMessageConverter。

有個問題需注意:如果在spring4.1.1下使用jackson2.4.0版本,啟動tomcat后請求時,會報406錯誤:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM