產生錯誤的背景: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