SpringBoot访问不了resources/templates下的页面

最近在使用springboot开发一个项目,然后发现一直访问不了resources/templates下的页面,命名控制器代码也没有写错。然后自己加了@EnableWebMvc注解以及自己配置了视图解析器,到最后还是不能解决问题(可以发现配置了@EnableWebMvc后可以在控制台打印出页面的路径)。最后发现原来SpringBoot只支持模板引擎的原因。所以我认为可能是要加上一个模板引擎在依赖中负责渲染(springboot默认不支持jsp),这里我就选择使用thymeleaf,加上spring-boot-starter-thymeleaf在依赖中就解决了。


spring boot在springmvc的视图解析器方面就默认集成了ContentNegotiatingViewResolver和BeanNameViewResolver,在视图引擎上就已经集成自动配置的模版引擎,如下: 
1. FreeMarker 
2. Groovy 
3. Thymeleaf 
4. Velocity (deprecated in 1.4) 
6. Mustache

JSP技术spring boot 官方是不推荐的,原因有三: 
1. 在tomcat上,jsp不能在嵌套的tomcat容器解析即不能在打包成可执行的jar的情况下解析 
2. Jetty 嵌套的容器不支持jsp 
3. Undertow

而其他的模版引擎spring boot 都支持,并默认会到classpath的templates里面查找模版引擎。

当然还有第二种可能性,那就是你的@SpringBootApplication注解所在类的扫描不到控制器的位置(可以用MockMvc查出这个原因),要保证所有包的位置都保持在与@SpringBootApplication注解所在类的包同级或者下级,@SpringBootApplication自带的@ComponentScan只会扫描@SpringBootApplication注解所在类的包同级或者下级



你可能感兴趣的:(Spring,Framework)