SpringMVC注解之@ResponseBody
原文写于 2013-04-18 https://github.com/kuitos/kuitos.github.io/issues/3
web项目中会大量用到ajax请求实现前后台交互,以前处理后台返回给前台的集合数据的方式是这样的:
@RequestMapping("loadConfigUsers")
public void loadConfigUsers(String domain, HttpServletResponse response) {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
List<Map<String, Object>> list = userConfigService.loadConfigUsers(domain);
PrintWriter out = null;
try {
out = response.getWriter();
out.print(JackSonMapper.toJsonString(list));
} catch (IOException e) {
logger.error("I/O出错", e);
} finally {
try {
out.close();
} catch (Exception e) {
logger.error("关闭流出错", e);
}
}
}
也就是使用jackson将List
@ResponseBody
@RequestMapping("loadConfigUsers")
public List<Map<String,String>> loadConfigUsers(String domain, HttpServletResponse response) {
return userConfigService.loadConfigUsers(domain);
}
前台接收到的即为json格式数组,如[{“a”:”b”},{“c”,”d”}]。SpringMVC底层会使用jackson将带有@ResponseBody的方法体的返回值转成标准的json格式。
想返回Map
@ResponseBody