Spring boot Thymeleaf URL语法令人困惑
所以我试图通过Thymeleaf生成(动态)链接 现在,我要链接到的第一个url是/resource/id,因此我有以下内容: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
<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})}"