關於springmvc json交互產生的406錯誤

  產生錯誤的背景:springmvc使用<mvc:annotation-driven>進行配置,那麼只要引入響應的json解析包就能夠了。在pom中已經引入了以下:html

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>

  web.xml配置DispatcherServlet以下:web

<servlet>
    <servlet-name>front</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>front</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

  上面的配置是正確的。可是當使用@ResponseBody註解要返回json數據的方法而後進行訪問時,就出現了406錯誤。spring

  解決方法:錯誤在於url-pattern。當改成其餘後綴時就能成功訪問,例如.do、.action。這是由於若是後綴爲.html、.htm、.xhtml時,springmvc會將content-type設置爲text/html,正確的是application/json,此時返回json對象就出錯了。json

相關文章
相關標籤/搜索