在 thymeleaf 中转义 '&' 字符

Escaping '&' character in thymeleaf

我需要使用 thymeleaf 将图像加载到 html img 标签上。问题是,图像本身是从 url 获得的,它有两个参数。

样本:

<img src="/products/images?categoryId=1&image=1" />

问题是,image 参数是动态生成的,因此我需要在那里使用 thymeleaf 表达式。因此我尝试了这样的事情:

<img th:src="@{'/products/images?categoryId=1&image=' + ${product.id}}" />

但是当我 运行 这样做时,我收到以下消息:

Exception parsing document: template="product-list", line 104 - column 59

它指向出现“&”符号的位置。现在,我尝试使用“&”但是随后,url 变成了

/products/images?categoryId=1&amp;image=1

显然,这是行不通的。

那么我如何使用 thymeleaf 创建一个带有两个参数的有效 link 呢?

这可以通过 Thymeleaf 轻松完成。不要连接字符串和 只需使用 @{'/products/images'(categoryId=1, image= ${product.id})}

参见documentation

在任何 html 属性中转义符号 & 的方式是 &amp;。实际上,无论您是否使用 Thymeleaf,您都应该始终转义所有 html 属性中的符号。

有关详细信息和参考资料,请参阅此问题: Do I encode ampersands in <a href...>?