SpringMVC填坑之旅-返回json數據


 

本文是自己開發中所遇到的問題,對一些及百度到的解決方案做一個記錄。

DispatcherServlet配置文件

    <!-- 定義跳轉的文件的前后綴 ,視圖模式配置-->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 這里的配置我的理解是自動給后面action的方法return的字符串加上前綴和后綴,變成一個 可用的url地址 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

每次返回數據都被攔截返回成jsp文件,在控制器的方法上添加@ResponseBody注解解決返回頁面問題;

頁面接收json數據報錯:

The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

解析類型不正確(自己理解)

配置注解及添加jar包解決:

<!-- 啟用spring mvc 注解 -->
    <context:annotation-config />  
    <mvc:annotation-driven >
        <mvc:message-converters register-defaults="true">
            <!-- Accept-Charset 大量打出問題 -->
            <!-- <bean class="com.panku.common.converter.UTF8StringHttpMessageConverter">
                <property name="writeAcceptCharset" value="false"></property>
            </bean> -->
            <!-- 將StringHttpMessageConverter的默認編碼設為UTF-8 -->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8" />
                <property name="writeAcceptCharset" value="false"></property>
            </bean>
            <!-- 將Jackson2HttpMessageConverter的默認格式化輸出為false -->
            <!-- <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list><value>application/json;charset=UTF-8</value></list>
                </property>
                <property name="prettyPrint" value="false"/>
                <property name="objectMapper">  
                    <bean class="com.panku.common.utils.JsonMapper"></bean>  
                </property> 
            </bean> -->
            <!-- 支持國產使用fastjson進行轉換json字符串 -->
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
                <property name="features">
                  <array>
                    <value>WriteMapNullValue</value>
                    <value>WriteNullStringAsEmpty</value>
                  </array>
                </property>
              </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

<!-- 提供無刷新返回json -->
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" />
            </list>
        </property>
    </bean>
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
          <property name="supportedMediaTypes">
                <list><value>application/json;charset=UTF-8</value></list>
          </property>
          <property name="prettyPrint" value="false"/>
    </bean>

jar包:

jackson-annotations-2.7.0.jar,jackson-core-2.7.0.jar,jackson-databind-2.5.5.jar。

 


免責聲明!

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



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