热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

@Controller@ResponseBody@RestController的基本含义与使用方法

@Controller单据使用@Controller不加@ResponseBody,用于返回一个视图,该情况属于比较传
  1. @Controller
    单据使用@Controller不加@ResponseBody,用于返回一个视图,该情况属于比较传统的Spring MVC应用,前后端不分离的场景。
    Spring回去resources/templates目录下查找hello.html,并且携带参数

@Controller
public class HelloController {
@GetMapping("/hello")
public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
model.addAttribute("name", name);
return "hello";
}
}

  1. @RestController
    只返回对象,并且对象直接以JSON或XML的形式传入HTTP响应中,该情况属于RESTful Web服务,前后端分离场景。

@Controller
public class HelloController {
@PostMapping("/hello")
@ResponseBody
public Person greeting(@RequestBody Person person) {
//返回json格式的Person对象
return person;
}
}

  1. @Controller + @ResponseBody
    返回JSON或XML形式数据;在Spring4之前开发RESTful Web服务,需要使用@Controller + @ResponseBody 注解使用;在Spring4之后,使用@RestController即可
    so:@Controller + @ResponseBody在功能层面上等于@RestController

@RestController
public class HelloController {
@PostMapping("/hello")
public Person greeting(@RequestBody Person person) {
//返回json格式的Person对象
return person;
}
}

推荐阅读
author-avatar
yun悠然_434
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有