产生错误的背景:springmvc使用<mvc:annotation-driven>进行配置,那么只要引入响应的json解析包就可以了。在pom中已经引入了如下:
com.fasterxml.jackson.core jackson-databind 2.8.5
web.xml配置DispatcherServlet如下:
front org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml 1 front *.xhtml
上面的配置是正确的。但是当使用@ResponseBody注解要返回json数据的方法然后进行访问时,就出现了406错误。
解决方法:错误在于url-pattern。当改为其他后缀时就能成功访问,例如.do、.action。这是因为如果后缀为.html、.htm、.xhtml时,springmvc会将content-type设置为text/html,正确的是application/json,此时返回json对象就出错了。