@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;
}
返回结果