You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:32:22