首先,spring相关依赖如下:
1 <properties>
2 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3 <spring.version>4.1.0.RELEASE</spring.version>
4 </properties>
5
6 <dependency>
7 <groupId>org.springframework</groupId>
8 <artifactId>spring-webmvc</artifactId>
9 <version>${spring.version}</version>
10 </dependency>
11 <dependency>
12 <groupId>org.springframework</groupId>
13 <artifactId>spring-web</artifactId>
14 <version>${spring.version}</version>
15 </dependency>
使用springMVC创建一个可以返回JSON的方法,需要如下书写,关键要为特定的方法添加
@ResponseBody,将返回值自动转换为JSON格式,作为相应的内容
1 @RequestMapping("/subCates")
2 public @ResponseBody List<Category> listSubCates(@Param Integer pId){
3 List<Category> cs = categoryService.listCategoryByPcid(pId);
4 return cs;
5 }
该注解需要在xxx-servlet.xml配置中开启
1 <mvc:annotation-driven />
单是如此还不够,经过调查,springMVC还依赖了处理JSON的类库Jackson
1 <!-- JSON -->
2 <dependency>
3 <groupId>com.fasterxml.jackson.core</groupId>
4 <artifactId>jackson-core</artifactId>
5 <version>2.5.0</version>
6 </dependency>
7
8 <dependency>
9 <groupId>com.fasterxml.jackson.core</groupId>
10 <artifactId>jackson-databind</artifactId>
11 <version>2.5.0</version>
12 </dependency>
13
14 <dependency>
15 <groupId>org.codehaus.jackson</groupId>
16 <artifactId>jackson-mapper-asl</artifactId>
17 <version>1.9.13</version>
18 </dependency>
本人最开始只依赖了mapper和core,没有添加databind依赖才导致了406错误。调查之后发现,其实只需要添加databind依赖就可以解决问题,databind依赖了core等配置。