@ResponseBody的作用
1. 作用讲解
@ResponseBody注解是springmvc框架中的常用注解之一。它的作用是将controller层中的方法的返回值对象转换成相应的格式,然后将其写入到HttpServletResponse响应体中。使用此注解此次请求将不再走视图处理器,而是直接将此响应结果写入到输入流中,其效果等同于使用response对象输出指定格式的数据。
2. 示例
@RequestMapping("/Item/{ItemId}")
@ResponseBody
public Item getItemById(@PathVariable Long id){
Item item=itemService.getItemById(id);
return item;
}
其中@PathVariable是和RequestMapping中的动态参数配合使用的它可以将url中的占位符也就是ItemId的值绑定到参数id
上
上面这段代码效果等同于:
@requestMapping("/Item/{ItemId}"
public void getItemById(@PathVariable Long id,HttpServletResponse response){
Item item =itemService.getItemById(id);
response.getWriter.writer(JsonObject.fromObject(Item).toString());
}
3.controller层加入此注解
加了这一个注解,返回的就是一个json对象,也就是会将return 后面的对象转换成json格式,可以在代码中试一试用fastJson等工具类写一下看结果是什么。另外如果在前台使用的是ajax调用的这个接口,那么收到返回值是json数据,可以修改dataType : ‘json’, 这一个属性。
原文链接:https://blog.csdn.net/zssy666/article/details/79134819