URL 中的 Thymeleaf 2 表达式

Thymeleaf 2 expressions in URL

我正在使用 Spring Boot 2.1.6.RELEASE,Thymeleaf 3.0.11.RELEASE。 我有

<a class="k-button" th:href="@{/customer/view/{id}(id=${accountObject.id})}" style="min-width: 0; color: green;" title="Xem"><span class="k-icon k-i-preview"></span></a>

运行正常,生成到http://localhost:8080/customer/42。 我试试

<a class="k-button" th:href="@{/customer/view/{type}(type=${accountObject.accountObjectType})/{id}(id=${accountObject.id})}" style="min-width: 0; color: green;" title="Xem"><span class="k-icon k-i-preview"></span></a>

它没有按预期工作,我希望它生成 http://localhost:8080/customer/1/42 (accountObject.accountObjectType = 2)

我需要 /customer/1/ 之类的东西,因为它将在 Spring MVC 控制器中 @PathVariable("type") Integer type

如何在 Thymeleaf 中放入 2 个表达式 URL?

一个 URI 模板中可以有多个占位符;最后一次提供所有替换。它应该看起来像这样:

th:href="@{/customer/view/{type}/{id}(type=${accountObject.accountObjectType},id=${accountObject.id})}"

(我还认为您可能不需要每个替换值的 {},但这不会造成伤害。)