Thymeleaf:无法解析为表达式

Posted

技术标签:

【中文标题】Thymeleaf:无法解析为表达式【英文标题】:Thymeleaf: Could not parse as expression 【发布时间】:2016-01-21 03:03:42 【问题描述】:

我正在尝试制作一个表格,显示来自数据库的信息,包括一张图片。问题是如何显示图像:

<table>
    <tr>
        <th>ID Catégorie:</th>
        <th>Nom:</th>
        <th>Description:</th>
        <th>Photo:</th>
    </tr>
    <tr th:each="cat : $categories">
        <td><img th:src="photoCat?idCat=$cat.idCategorie"/></td>
    </tr>
</table>

我的控制器显示图像的方法:

@RequestMapping(value="photoCat", produces=MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public byte[] photoCat(Long idCat) throws IOException 
    Categorie c = adminCatService.getCategorie(idCat);
    return org.apache.commons.io.IOUtils.toByteArray(new ByteArrayInputStream(c.getPhoto()));

我收到以下错误:

org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "photoCat?idCat=$cat.idCategorie" (categories:53)

你能帮忙吗?谢谢。

【问题讨论】:

【参考方案1】:

你不能在 Thymeleaf 中嵌入这样的变量。

试试这个:

<img th:src="$'photoCat?idCat=' + cat.idCategorie" />

【讨论】:

【参考方案2】:

我会推荐 thymleafe url 语法来添加任意数量的参数。

例如,

<img th:src="@/photoCat(idCat=$cat.idCategorie" />

它会生成如下 URL:photoCat?idCat=category

<img th:src="@/photoCat(idCat=$cat.idCategorie,q=$query" />

它会生成如下 URL:photoCat?idCat=category&q=query

它还会为您对所有变量进行 URI 编码。

查看文档以获取更多示例。http://www.thymeleaf.org/doc/articles/standardurlsyntax.html

【讨论】:

【参考方案3】:

你必须像这样放置图像源网址

<img th :src="$image soruce url" />

【讨论】:

以上是关于Thymeleaf:无法解析为表达式的主要内容,如果未能解决你的问题,请参考以下文章

Java Thymeleaf:无法解析表达式

IntelliJ中的Spring boot + thymeleaf:无法解析变量

Thymeleaf 模板无法正确解析我的 html 5 页面

无法解析来自thymeleaf的javascript中的JSON对象

Ratpack + Thymeleaf + shadowJar - 解析模板“home”时出错,模板可能不存在或无法访问

Thymeleaf 无法解析多模块 Spring Boot 项目中的模板