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

如何从MySQL提取URL传入Thymeleaf模板作为img的src并解决路径错误问题

问题根因与解决方案

核心错误原因

你当前遇到的问题本质是模板中没有正确读取Image对象里存储URL的属性,直接引用了Image实例本身:

  • Thymeleaf渲染非字符串类型变量时,会默认调用对象的toString()方法,你看到的com.liftoff.thymeleafrecipeproject.demo.models.Image@24就是Image类默认的toString返回结果
  • 该返回值没有http/https前缀,会被Thymeleaf识别为应用内相对路径,自动拼接上当前服务的域名前缀http://localhost:8080/,最终形成你看到的错误路径

修复方案

1. 正确引用Image对象的URL属性

假设你的Image实体类中存储图片URL的字段名为url,对应的Getter方法为getUrl(),模板中要明确取该属性的值:

<img th:src="${image.url}" alt="图片">

2. 不要用@{}包裹外部链接

如果你的代码里用了Thymeleaf的链接语法@{}包裹URL变量,也会导致带http/https前缀的外部链接被识别为相对路径处理,直接去掉@{}包裹即可。

常见错误写法对照

  • 错误1:直接引用Image对象
<!-- 错误:会触发toString方法 -->
<img th:src="${image}" alt="图片">
  • 错误2:用@{}包裹外部URL
<!-- 错误:@{}会强制将路径识别为应用内相对路径 -->
<img th:src="@{${image.url}}" alt="图片">

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:24:03