@ResponseBody
作用:
該注解用於將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換為指定格式后,寫入到Response對象的body數據區。
使用時機:
返回的數據不是html標簽的頁面,而是其他某種格式的數據時(如json、xml等)使用;
導包:
除了一些spring的包之外,還需要jackson-annotations.jar , jackson-core.jar , jackson-databind.jar 這三個包
開啟@ResponseBody注解---在MVC中配置轉換器:
1 <bean 2 class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 3 <property name="messageConverters"> 4 <list> 5 <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> 6 <!-- <ref bean="mappingJacksonHttpMessageConverter" />--> 7 </list> 8 </property> 9 </bean>
配置完就可以直接使用了:
1 @RequestMapping(value="/getStudentMistakesList", method = RequestMethod.GET) 2 @ResponseBody 3 public EduReturnJson getStudentMistakesList(HttpServletRequest request, HttpServletResponse response) throws Exception { 4 Map<String,String> map = getParamMap(request); 5 List<Map<String, String>> mistakesList = eduStudentMistakesService.getStudentMistakesList(map); 6 if(mistakesList != null){ 7 eduReturnJson = new EduReturnJson(1, "", mistakesList); 8 return eduReturnJson; 9 }else{ 10 return new EduReturnJson(0, "", mistakesList); 11 } 12 }
這時返回數據已經轉換為json格式:
1 {"ret":1,"msg":"","data":[{"num":"34","courseid":"12","coursename":"語文"},{"num":"0","courseid":"13","coursename":"數學"},{"num":"0","courseid":"14","coursename":"英語"}],"count":0}