SpringBoot Controller不能返回页面 返回的是字符串

说明 

今日在做关于SpringBoot小项目时发现一个问题,当我们发起请求后,想要返回页面时,却一直返回字符串,通过分析最终发现是@RestController和@Controller误用的问题。

效果

代码片段

SpringBoot Controller不能返回页面 返回的是字符串

返回结果

SpringBoot Controller不能返回页面 返回的是字符串页面接收到了字符返回值。

原因

 通过查找资料发现@RestController是将@Controller和@ResponseBody进行了组合,因此返回值的时候将字符串返回到页面上,请看

SpringBoot Controller不能返回页面 返回的是字符串

此时页面效果就是

SpringBoot Controller不能返回页面 返回的是字符串

结论

1、当Controller是存在返回页面的控制器时,不可以使用@RestController

2、当需要同时返回页面和字符串时,需要使用@Controller,在返回字符串的方法上使用@ResponseBody

3、当不需要返回页面时,可以直接使用@RestController来代替@Controller和@ResponseBody,即可直接返回结果