首先,spring相關(guān)依賴如下:
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創(chuàng)建一個可以返回JSON的方法,需要如下書寫,關(guān)鍵要為特定的方法添加
@ResponseBody,將返回值自動轉(zhuǎn)換為JSON格式,作為相應(yīng)的內(nèi)容
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 />
單是如此還不夠,經(jīng)過調(diào)查,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依賴才導(dǎo)致了406錯誤。調(diào)查之后發(fā)現(xiàn),其實(shí)只需要添加databind依賴就可以解決問題,databind依賴了core等配置。