没搞懂@Controller和@RestController两者区别,导致报了好几遍错:Whitelabel Error Page...
官方文档中这样解释:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是说@RestController=@ResponseBody+@Controller.
使用时的区别就是:
1.@Controller注解是将类标记为一个SpringMVC Controller,它是可以返回一个视图的,而@RestController不可以返回视图。
2.@RestController可以返回JSON/XML或者其他自定义类型到页面,而@Controller需要配合@ResponseBody才可以。像这样:
@RestController
public class HelloController {
@RequestMapping("sayHi")
public String sayHi(){
return "Hello Spring Boot";
}
}
等于
@Controller
public class HelloController {
@RequestMapping("sayHi")
public @ResponseBody String sayHi(){
return "Hello Spring Boot";
}
}