Spring boot Thymeleaf URL语法令人困惑

Spring boot Thymeleaf URL语法令人困惑,spring-boot,thymeleaf,Spring Boot,Thymeleaf,所以我试图通过Thymeleaf生成(动态)链接 现在,我要链接到的第一个url是/resource/id,因此我有以下内容: <a th:href="|/resource/${resource.id}|" href="#" class="btn btn-default">Edit...</a> <a th:href="|/resource/${resource.id}/child/${child.id}|" href="#" class="btn btn-def

所以我试图通过Thymeleaf生成(动态)链接

现在,我要链接到的第一个url是/resource/id,因此我有以下内容:

<a th:href="|/resource/${resource.id}|" href="#" class="btn btn-default">Edit...</a>
<a th:href="|/resource/${resource.id}/child/${child.id}|" href="#" class="btn btn-default">Edit...</a>
这很奇怪也很混乱。我真的不知道为什么会发生这种情况,也不知道如何得到我想要的:

/resource/3/child/4
非常感谢您的帮助。如果有什么不同的话,我使用的是springboot/springmvc

更新: 好的,在重新阅读(并理解)文档之后,更正确的语法是:

<a th:href="@{/resource/{rid}/child/{cid}(rid=${resource.id} cid=${child.id})}" href="#" class="btn btn-default">Edit...</a>
虽然非常接近,但仍然有点错误和混乱


Thymeleaf不支持多个路径变量吗?

处理url时,最好使用url语法@{…},而不是文字替换。 例如,在您的案例中:

    <a th:href="@{/resource/{resource.id}/child/{child.id}}" 
          href="#" class="btn btn-default">Edit...</a>


(注意rest资源占位符中没有美元符号)

我认为缺少逗号。试着这样做:

th:href="@{/resource/{rid}/child/{cid}(rid=${resource.id},cid=${child.id})}"

为了正确构建包含多个路径变量的URL,每个键/值都应该用逗号分隔。

是否检查了child.id的值?我经常使用它,比如
@{resource/${resource.id}/child/${child.id}}
。 您可以使用
我最初尝试过这个,但这只给了我一个URL,上面写着/resource/%7Bresource,id%7D,第二个URL是/resource/%7Bresource.id%7D/child?id=4,这甚至是错误的:(参见heRoy的答案。我忘记了参数映射
    <a th:href="@{/resource/{resource.id}/child/{child.id}}" 
          href="#" class="btn btn-default">Edit...</a>
th:href="@{/resource/{rid}/child/{cid}(rid=${resource.id},cid=${child.id})}"