Spring Boot中@RequestMapping和@GetMapping映射失效,白标错误求助
问题排查与解决步骤
核心问题:Java版本不兼容
Spring Boot 3.0.x 官方要求Java 17及以上版本,你当前使用的Java 15不符合最低版本要求,这会导致框架核心功能异常(包括组件扫描、注解解析失效),是引发白标错误的关键原因。
解决方式二选一:
- 升级Java版本:安装Java 17并将Eclipse项目的构建路径、Maven配置切换为Java 17(pom.xml里的
java.version改为17)。 - 降级Spring Boot版本:如果课程强制要求Java 15,将pom.xml中Spring Boot父版本改为2.7.x(如
2.7.10),该版本支持Java 8-17。
控制器与访问路径修正
1. 修复/hello/test1访问问题
你的控制器代码逻辑本身没问题,但需确保:
- 项目启动日志中存在类似
Mapped "{[/hello/test1],methods=[GET]}"的映射注册记录,若没有,说明控制器未被Spring扫描到(大概率是Java版本不兼容导致)。 - 访问路径严格为
http://localhost:8080/hello/test1,不要额外添加.html后缀。
2. 实现hello.html页面访问
当前你没有对应返回视图的控制器方法,需添加:
@GetMapping("/hello") public String helloPage(Model model) { model.addAttribute("message", "Hello from Thymeleaf"); return "hello"; // 对应src/main/resources/templates/hello.html }
同时确保hello.html放在src/main/resources/templates目录下(Thymeleaf默认视图位置),访问路径为http://localhost:8080/hello。
项目重建与验证
- 在Eclipse中执行
Maven > Clean→Maven > Install,清理缓存并重新构建项目。 - 重启Spring Boot应用,查看控制台日志:
- 确认
HelloWorldController被成功初始化。 - 确认所有请求映射已正确注册。
- 若存在类加载、版本不兼容的报错,优先解决这些底层问题。
- 确认
内容的提问来源于stack exchange,提问作者GernoBre
相关产品推荐
相关产品推荐

