Spring MVC中访问正确URL却返回404错误的排查求助
针对你遇到的访问/halls返回404的情况,结合配置与环境,可按以下步骤排查:
确认视图文件路径
检查index.html是否放在src/main/webapp/WEB-INF/views/目录下。WEB-INF必须位于webapp根目录下,若路径错误(比如放在src/main/java下),Thymeleaf无法找到视图文件。验证组件扫描范围
你的SpringConfig中@ComponentScan("exhibition")指定了扫描包,需确保HallController所在的包是exhibition或其子包。如果控制器不在扫描范围内,Spring不会注册该控制器的请求映射。检查Thymeleaf依赖兼容性
确认项目中已正确引入Thymeleaf与Spring MVC的整合依赖,且版本与Spring版本匹配(比如Spring 5.x对应Thymeleaf 3.x)。若依赖缺失或版本不兼容,视图解析会失败。查看Tomcat启动日志
检查Tomcat控制台的Spring启动日志,确认是否有如下类似信息:Mapped "{[/halls],methods=[GET]}" onto public java.lang.String com.example.HallController.index()如果没有该日志,说明Spring未扫描到控制器,需重新检查组件扫描配置。
确认请求路径的上下文
若项目部署到Tomcat时设置了上下文路径(非默认的/),访问路径应为http://localhost:8080/你的上下文路径/halls,而非直接/halls。清理重建项目
清理Maven/Gradle的构建目录(如target),重新打包部署,同时重启Tomcat,避免IDE或Tomcat缓存导致的旧文件干扰。
内容的提问来源于stack exchange,提问作者aleshkey

