@ResponseBody的作用是将java对象转换成json格式。
@Controller
public class HelloController {
@RequestMapping("/boot/hello")
public
String hello(){
return "Hello";
}
}
在这段代码中当页面/boot/hello发起请求时,springboot会依据return后的字符串,去resources/static下取寻找名为Hello的静态页面,如果没有页面,会再去templates下寻找动态页面。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NiEfqRop-1586388222964)(G:\Program Files (x86)]\Typora\localhost\springboot\response_页面)](https://i-blog.csdnimg.cn/blog_migrate/5eea07cd10b1ac5db93c6af1ea50828a.jpeg)
很明显这里我是没有创建这个页面的,所以不出意外会出现报错。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4zjrrdbK-1586388222966)(/response_报错)]](https://i-blog.csdnimg.cn/blog_migrate/f49272c6955db6be59962e0a4bb30dad.png)
果然!
并且最下面一行说的就是template Hello可能不存在。
此时,我们加上@ResponseBody注解,在使用此注解之后不会再走视图处理器,也就是不会再去resources下寻找对应的页面,而是将这个方法的返回值转换成json数据,因为这里return的就只是一个单纯的字符串,所以页面上应该会打印出这个Hello。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2dsd4F8-1586388222967)(/response_字符串)]](https://i-blog.csdnimg.cn/blog_migrate/778958651311369c6971a86e347281c5.jpeg)
成功得到!
因为这只是个字符串,可能对将java对象转换成json格式还是没有深刻的理解。
在这里我创建一个User类,并给他赋值,将这个user对象传给页面来看下。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UVlNF6XA-1586388222968)(/response_json)]](https://i-blog.csdnimg.cn/blog_migrate/29c7e508928a72eb19fc7e8f01253789.jpeg)
页面成功获得这个数据,这就是所谓的将java对象转换成json格式,无论这个传过去的对象有多复杂,它的本质就是像演示的这样。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BIlZrrY1-1586388222968)(/response_json_演示)]](https://i-blog.csdnimg.cn/blog_migrate/dc2c317c2c172e9990a33058b9347295.jpeg)
本文详细介绍了SpringBoot框架中@ResponseBody注解的功能与用法。该注解用于将Java对象转换为JSON格式,直接响应给客户端,避免了视图处理器的调用,简化了数据传输过程。
831

被折叠的 条评论
为什么被折叠?



