thymeleaf - 有没有办法将条件映射到 th:insert?
问题描述
我要显示的是对象的集合,例如
cards: [
{
type: "type_0"
elements: [
...
]
}
...
]
应该在哪里type
更改生成的 html。我想以下应该有效
<div th:switch="${card.type}" th:body="${card}">
<div th:case="type_0"> <div th:insert="card_0"/> </div>
...
</div>
但是有没有办法在不为每种新卡类型添加额外的情况下做同样的事情?
解决方案
如果您使用一致的命名方案,那么您可以使用预处理:
<div th:insert="${__${card.type}__}"></div>
在运行时,Thymeleaf 将首先进行预处理,因此它将代码转换为:
<div th:insert="${type_0}"></div>
然后,实际的模板渲染就完成了,所以如果有一个名为 的片段type_0.html
,它应该被插入。
推荐阅读
- pandas - 将具有 AM/PM 的对象转换为以小时为单位的日期时间向下舍入
- ssl - 客户端上的 Mosquitto docker Socket 错误
, 断开 - javascript - 如何使我的分区在单击时更改颜色?
- c++ - 如何将包含纪元时间的十六进制字符串转换为 time_t?
- android - 为什么我的 Post api 在邮递员中运行但不在 react-native 应用程序中运行
- python - 在 Django 中使用波斯语或阿拉伯语从 slug 中反转 URL
- mongodb - mongo docker(通过 Dockerfile 创建)未连接到 Compass/外部主机
- java - 我们可以使用 Powershell 在 azure VM 上远程安装 java 吗?
- node.js - 更新表中的项目时,DynamoDB 如何消耗容量?
- javascript - 尝试忽略某些子项时,jQuery 单击事件会出现问题