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

Spring Boot2.2.6整合Thymeleaf访问/admin路径报错但PDF生成正常

问题排查及解决方案

核心原因

报错信息中提示找不到error模板是表层现象,本质是/admin接口的处理逻辑先抛出了未捕获的异常,Spring Boot默认会将异常请求转发到/error路径,你没有在templates目录下配置error.html模板,所以才抛出模板找不到的错误。PDF生成逻辑可以正常调用,说明Thymeleaf基础功能是正常的,问题出在Web请求的处理链路。


具体问题及修复方案

  • 身份验证逻辑空指针异常

控制器代码中直接对Principal参数做强制类型转换,若用户未登录直接访问/admin路径,principal参数为null,强转操作会直接抛出空指针异常触发错误转发。
修复方案:

  1. 增加Principal非空判断,未登录时直接跳转登录页或者返回错误提示
  2. 临时在templates目录下新增error.html模板,访问/admin时即可看到真实的底层报错信息,方便进一步定位问题
  • 静态资源路径配置错误

Spring Boot默认的静态资源映射规则会直接暴露resources/static目录下的内容,访问路径不需要带static前缀。存放在static/site/index.html的资源,实际访问路径是/site/index.html,你在Model中传入的../static/site/index.html路径不符合映射规则,若master.html中引用该路径加载前端资源会返回404。
修复方案:
将代码model.addAttribute("index", "../static/site/index.html");修改为model.addAttribute("index", "/site/index.html");

  • Thymeleaf模板解析器配置冲突

为实现PDF生成你可能自定义了Thymeleaf模板解析器,若自定义解析器覆盖了Spring Boot默认的Web模板解析器,会导致无法正常解析master.html这类普通页面模板。
修复方案:
给PDF专用的模板解析器设置更高的优先级(配置order属性值小于默认解析器的优先级),同时限定该解析器仅处理PDF相关的模板,保留Spring Boot默认的Web环境Thymeleaf解析器,默认解析器的前缀为classpath:/templates/、后缀为.html,完全匹配你当前的目录结构。


内容的提问来源于stack exchange,提问作者Max Ferreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:24:05