SpringBoot不能通过浏览器直接访问resources/templates下的页面(注意: 这点很重要)
参考链接地址;https://blog.csdn.net/qq_21104515/article/details/79155052
最后发现原来SpringBoot只支持模板引擎的原因。所以我认为可能是要加上一个模板引擎在依赖中负责渲染(springboot默认不支持jsp),这里我就选择使用thymeleaf,加上spring-boot-starter-thymeleaf在依赖中就解决了。
spring boot在springmvc的视图解析器方面就默认集成了ContentNegotiatingViewResolver和BeanNameViewResolver,在视图引擎上就已经集成自动配置的模版引擎,如下:
- FreeMarker
- Groovy
- Thymeleaf
- Velocity (deprecated in 1.4)
- Mustache
JSP技术spring boot 官方是不推荐的,原因有三:
- 在tomcat上,jsp不能在嵌套的tomcat容器解析即不能在打包成可执行的jar的情况下解析
- Jetty 嵌套的容器不支持jsp
- Undertow
而其他的模版引擎spring boot 都支持,并默认会到classpath的templates里面查找模版引擎。
当然还有第二种可能性,那就是你的@SpringBootApplication注解所在类的扫描不到控制器的位置(可以用MockMvc查出这个原因),要保证所有包的位置都保持在与@SpringBootApplication注解所在类的包同级或者下级,@SpringBootApplication自带的@ComponentScan只会扫描@SpringBootApplication注解所在类的包同级或者下级