Spring MVC项目访问主页返回Whitelabel Error Page(404)问题排查求助
你已经抓到了关键线索——控制器方法确实被成功触发了(控制台打印出了"ECCOMI"),但视图解析环节出了问题,导致返回404错误。核心原因是你的项目缺少模板引擎依赖,Spring Boot无法识别并渲染src/main/resources/templates目录下的HTML文件。
问题根源
控制器返回的"Home"是视图名称,Spring Boot需要对应的模板引擎来把这个名称映射到templates目录下的Home.html文件。但目前你的pom.xml只引入了Web、数据访问相关的依赖,没有添加模板引擎的starter依赖,导致Spring Boot找不到解析视图的规则,最终返回404。
解决方案
1. 添加Thymeleaf模板引擎依赖
Thymeleaf是Spring Boot官方推荐的模板引擎,默认会自动扫描src/main/resources/templates目录。在pom.xml的<dependencies>节点中加入以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
2. 确认视图名与文件名匹配
确保控制器返回的视图名"Home"和templates下的文件名Home.html大小写完全一致(Windows系统不区分大小写,但Linux环境下严格区分,保持一致能避免后续部署踩坑)。
3. 重启应用
添加依赖后重启Spring Boot应用,再次访问localhost:8080/dieta/home,应该就能正常渲染Home页面了。
补充说明
如果你不想使用Thymeleaf,也可以选择Freemarker、Velocity等其他模板引擎,但需要添加对应的starter依赖并配置正确。不过Thymeleaf和Spring Boot的集成最顺畅,是最省心的选择。
内容的提问来源于stack exchange,提问作者Monkey hitting keys

