Spring Boot 3.0.3集成Thymeleaf遇404资源未找到错误求助
问题分析与解决方案
核心问题定位
报错明确显示找不到静态资源board/boardLista,但你的Controller映射路径是/board/boardList,首先排查拼写差异:
- 确认访问路径是否误写成
/board/boardLista(多了末尾的a) - 检查HTML页面内的跳转链接是否写错了路径
若路径拼写无误,按以下步骤逐一排查:
1. 验证模板文件的路径与名称
确保HTML文件存在于src/main/resources/templates/board/目录下,且文件名为boardList.html(Linux/macOS环境需注意文件名大小写)。
2. 调整Thymeleaf适配Spring Boot 3配置
Spring Boot 3.0.x适配Thymeleaf 3.1.x,LEGACYHTML5模式已过时,修改application.properties:
spring.thymeleaf.mode=HTML
Gradle依赖无需手动指定版本,保持现有配置即可:
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
3. 修正Controller的依赖注入与扫描问题
- 确保
BoardController处于Spring Boot扫描范围内:和主启动类同包/子包,或通过@ComponentScan指定扫描路径 - 改用构造注入(Spring Boot 3推荐方式,避免依赖注入异常):
@Controller public class BoardController { private final BoardService boardService; // 构造注入替代@Autowired public BoardController(BoardService boardService) { this.boardService = boardService; } @GetMapping("/board/boardList") public ModelAndView openBoardList() throws Exception { ModelAndView mv = new ModelAndView("board/boardList"); List<BoardDto> list = boardService.selectBoardList(); mv.addObject("list",list); return mv; } }
4. 排查请求处理的混淆问题
报错抛出NoResourceFoundException,说明Spring将请求判定为静态资源请求而非模板请求:
- 检查
src/main/resources/static/目录下是否存在同名路径,避免冲突 - 确认自定义
WebMvcConfigurer未修改视图解析规则,干扰模板渲染流程
5. 清理重构项目
执行Gradle命令清理并重新构建,确保资源文件正确复制到编译目录:
./gradlew clean build
内容的提问来源于stack exchange,提问作者user23255998
相关产品推荐
相关产品推荐

