如何将变量插入 'then' 表达式

How to interpolate variables into 'then' expressions

我正在尝试创建一个行为如下的百里香叶片段:

<section th:fragment="alert(type)" th:class="${type ? 'alert-' + type : ''}"></section>
<div th:replace="alert(info)"></div>
<section class="alert-info"></section>

我试过内插 |alert-${type}| 和连接 'alert-' + 类型,但我无法让它工作。有什么建议吗?

在 Thymeleaf 片段中,添加空检查:

<section th:fragment="alert(type)" 
         th:class="${type != null ? 'alert-' + type : ''}">
</section>

可选地,为了清楚起见,我更喜欢将文字放在单引号中。在将值传递给片段时,我也更喜欢使用参数名称(同样,这是可选的)。

在下面的例子中,alert_fragment.html是我的测试片段。

<div th:replace="alert_fragment.html :: alert(type='info')"></div>

对于 null 情况:

<div th:replace="alert_fragment.html :: alert(type=null)"></div>

如果你从服务器传递类型值,那么它当然是这样的:

<div th:replace="alert_fragment.html :: alert(type=${info})"></div>

结果HTML:

<body>
    <section class="alert-info"></section>
    <section></section>
</body>

更新

如果警报类型永远不会为空,那么您可以将片段简化为:

<section th:fragment="alert(type)" th:class="'alert-' + ${type}"></section>