今天有同事问了我一个问题,他说他使用springMVC返回的String无法关联到视图页面,我看了下他写的代码,发现是由于他对@Controller和@RestController的区别不了解导致的,我以前也越到过这种细节问题。
@RestController 等价于 @Controller 加上 @ResponseBody.
@ResponseBody 表示该方法的返回不会被解析为跳转, 而是直接写入http响应正文
如下图用的是@RestController
启动项目后访问http://localhost:8080/index
发现页面显示的是后台返回的String内容,而非视图页面。
但是返回ModelAndView是可以访问到视图页面的
http://localhost:8080/page
下面把@RestController改为@Controller
启动项目后访问http://localhost:8080/index
发现页面显示index视图页面。
我的springboot mvc配置
# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp