使用@ResponseBody注解可以让Controller返回json格式的数据,在需要传输一个对象信息的时候往往使用这种方式。如果在使用的时候遇到了406,一般原因是:
- 缺少jar包。转换成json格式的字符串需要第三方jar包如jackson的支持
- web.xml配置错误。在spring中,.html结尾的请求是不返回json的,如果需要一个请求以json格式返回,需要单独配置一个servlet-mapping
- Dispatcher servlet 的xml配置文件没有配置注解驱动。
正确的配置如下。
Maven配置文件,spring的版本是4.x。
com.fasterxml.jackson.core jackson-core 2.9.5 org.codehaus.jackson jackson-mapper-asl 1.9.13 com.fasterxml.jackson.core jackson-databind 2.9.8 com.fasterxml.jackson.core jackson-annotations 2.9.5
web.xml文件中关于servlet-mapping的配置。为Dispatcher-servlet配置多个mapping路径,在需要一个请求返回json的时候,url写成/service/test的形式,不走.html的mapping
smart org.springframework.web.servlet.DispatcherServlet 3 smart *.html smart /service/*
DispatcherServlet的xml。记得开启注解,并增加相应的命名空间