java - 如何从 Thymeleaf 获取特定的地图值?
问题描述
如何从 Thymeleaf 获取特定的地图值?
<tr th:each="item : ${items}">
<td th:each="element : ${item}">
<a th:text="${element['key']}">anchor</a>
</td>
</tr>
在上面的代码中,显示了一个元素对应的所有键。
但我想要的是得到element['projectName']
. 也就是说,我希望它是这样的:
<tr th:each="item : ${items}">
<td th:each="element : ${item}">
<a th:text="${element['key']}"
th:href="${element.get('projectName')}">anchor</a>
</td>
</tr>
items的数据类型是List<Map<String, Object>>
,items里面的值是
assertThat(innerItems.get(0).get("modelName")).isEqualTo("a");
assertThat(innerItems.get(0).get("item")).isEqualTo(1);
assertThat(innerItems.get(0).get("id")).isEqualTo("q");
assertThat(innerItems.get(0).get("projectName")).isEqualTo("DefaultProject");
assertThat(innerItems.get(0).get("user_poi_no")).isEqualTo(1);
is.
解决方案
当你遍历一张地图时,你会得到一个带有 a和 a的特殊java.util.Map.Entry
元素,而不是实际的项目本身。在您给出的示例中,使用而不是应该工作(如果这确实是您想要的):key
value
item
element
<tr th:each="item : ${items}">
<td th:each="element : ${item}">
<a th:text="${element['key']}" th:href="${item['projectName']}">anchor</a>
</td>
</tr>
如果您只想要projectName
列表中的每个项目,您甚至不需要内部循环。像这样的例子:
<tr th:each="item : ${items}">
<td>
<a th:text="${item['projectName']}">anchor</a>
</td>
</tr>
推荐阅读
- php - 如何在 yii framweork 中使用 phpmailer 从函数发送附件?
- javascript - 我试图做到这一点,所以卡片只在 div.card-title 而不是洞 div.card 上打开(CodePen Home 3D 折叠显示)
- php - 尝试将mysql表中的多个值查询到php中时出现问题
- logging - 如何收集 Kubernetes CronJob 的每个作业在一段时间内的日志?
- twitter-bootstrap - Bootstrap 4.5 截断问题
- sql - 将数据从单个管道分隔的列中获取到不同的列
- python - 谁能告诉我这段代码有什么问题?当我第 11 次按重命名(为了使数字为 10)时,一切都冻结了
- python - 在我的 Windows 64 位机器上安装 Python 时出错
- erlang - 如何从其他erlang文件中导入erlang文件
- python-3.x - 使用 Python 的 asyncio 跨不同类同时启动多个任务