【问题标题】:Thymeleaf gets all images from foldersThymeleaf 从文件夹中获取所有图像
【发布时间】:2018-04-16 22:41:56
【问题描述】:

是否可以从文件夹中获取所有图像?

我的意思是我有这样的图像结构

folder1 ---
   ---image1.jpg
   ---image2.jpg
   ---image3.jpg

folder2 ---
   ---image1.jpg
   ---image2.jpg

如何在 html 中显示所有图像?

@编辑

只有我的尝试:

<p th:each="i: ${#numbers.sequence(1, 5)}">
        <img th:src="@{/folder/001/0.jpg}"/>
    </p>

【问题讨论】:

  • 你的代码在哪里?你尝试了什么?

标签: java html thymeleaf


【解决方案1】:

Thymeleaf 没有内置任何内容来读取文件夹并获取其中的文件列表。如果您正在尝试动态构建某些东西(我不确定您的问题是否是您想要做的),那么您需要在控制器中读取它(无论 Java 代码将上下文放在一起您发送到 Thymeleaf 的变量映射或模型)。

如果您只是想创建一个包含五个编号图像的静态列表,例如您的示例代码,那么您需要在表达式中连接“每个”变量以生成图像 URL,如下所示:

<p th:each="i: ${#numbers.sequence(1, 5)}">
    <img th:src="@{${'/folder/001/' + i + '.jpg'}}"/>
</p>

这将生成以下 HTML:

<p>
    <img src="/context/folder/001/1.jpg" />
</p>
<p>
    <img src="/context/folder/001/2.jpg" />
</p>
<p>
    <img src="/context/folder/001/3.jpg" />
</p>
<p>
    <img src="/context/folder/001/4.jpg" />
</p>
<p>
    <img src="/context/folder/001/5.jpg" />
</p>

还有更多创建Link URLs in the documentation的例子。这些展示了如何使用表达式来构造基本 URL 或构造任何查询参数(尽管通常在加载图像时不使用查询参数)。

【讨论】: