406是指请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。但使用@RestController注解控制器,它的作用相当于@ResponseBody+@@Controller,意思是直接返回数据。但是SpringMVC不能直接使用@RestController返回一个列表数据时,它不会自动给你转换json,会报错我的理解就是请求返回的数据与响应请求的页面的数据有数据格式冲突,需要转换数据格式。然后网上就说是需要引入jackson
的jar
包。
在maven
导入如下包:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.*.*</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.*.*</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.*.*</version>
</dependency>
注意:
- spring和jackson有版本冲突问题,就会报错
nested exception is java.lang.NoClassDefFoundError:com/fasterxml/jackson/databind/exc/InvalidDefinitionException
,我使用的spring 5.3.*的话,可以引入jackson2.9.*的包,其他版本的话可以自行升降jackson的包。 - 在maven中导包后还需将包引入WEB-INF下的lib目录中,不然也会报错。