@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";
}

访问结果

SpringMVC框架09——@ResponseBody的用法详解-LMLPHP

返回值类型为集合类型

@RequestMapping("/testlist")
@ResponseBody
public List getList(){
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
return list;
}

返回结果

SpringMVC框架09——@ResponseBody的用法详解-LMLPHP

 返回值类型为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;
}

返回结果

SpringMVC框架09——@ResponseBody的用法详解-LMLPHP

返回值类型为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;
}

返回结果

SpringMVC框架09——@ResponseBody的用法详解-LMLPHP

05-07 15:25