@Controller和@RestController的区别?
Posted xnuuuu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Controller和@RestController的区别?相关的知识,希望对你有一定的参考价值。
1.@RestController注解相当于@ResponseBody + @Controller合在一起的作用。 2.如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容.
例如:
1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
若返回json等内容到页面,则需要加@ResponseBody注解
1 @Controller 2 @RequestMapping("/login") 3 //@Api(value = "登录接口",tags = "login control") 坑 tags中如果写中文,swagger无法展开 4 @Api(description = "登录接口") 5 public class LoginController { 6 7 @Autowired 8 IUserService iUserService; 9 10 private UsernamePasswordToken token; 11 /** 12 * 登录页面 13 * 14 * @return 15 */ 16 @GetMapping("/tologin") 17 public String tologin() { 18 return "/page/backstage/blogin.html"; 19 }
2.@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
@RestController @RequestMapping("/menu") @Api(description = "菜单") public class MenuController { @Autowired IMenuService iMenuService; @GetMapping("/getMenu") @ApiOperation("获取菜单") public Result getMenu() { List<Tree> menu = iMenuService.findMenu(); return Result.builder().code(200).object(menu).build(); }
以上是关于@Controller和@RestController的区别?的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的新 Spring Boot 项目中关闭 Spring Security?
JavaFX: FXML嵌套和子Controller(Sub-Controller)
@Controller和@RestController的区别?