@ResponseBody可以标注在方法上也可以标注在类上面。简单来说,当标注在方法上时,该方法的返回结果直接转成JSON格式;当标注在类上时,该类中的所有方法的返回结果都转换成JSON格式。
代码示例如下:
前端的异步请求使用JQuery的ajax方法
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> </script> <script> $.ajax({ url:"/testxxx", success:function(result){ $("#div1").html(result); } }); </script>
服务器端Controller类
标注在方法上,返回值类型为String类型
@RequestMapping("/teststr") @ResponseBody public String getStr(){ return "hello"; }
访问结果
返回值类型为集合类型
@RequestMapping("/testlist") @ResponseBody public List getList(){ List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); return list; }
返回结果
返回值类型为Map类型
@RequestMapping("/testmap") @ResponseBody public Map<Integer,String> getMap(){ Map<Integer,String> map = new HashMap<Integer, String>(); map.put(1,"aaa"); map.put(2,"bbb"); map.put(3,"ccc"); return map; }
返回结果
返回值类型为POJO类型
Student类
public class Student { private String name; private int age; //getter和setter方法 }
Controller类
@RequestMapping("/getstu") @ResponseBody public Student getStu(HttpServletResponse response){ Student stu = new Student(); stu.setName("Tom"); stu.setAge(20); return stu; }
返回结果