JSON_springMVC下,使用AJAX请求,产生406错误的解决手记

JSON_springMVC下,使用AJAX请求,产生406错误的解决手记

首先,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等配置。

你可能感兴趣的:(JSON_springMVC下,使用AJAX请求,产生406错误的解决手记)