我是Thymeleaf(和webdev)的新手,我正在尝试将Thymeleaf迭代(th:each)与URL重写(th:href)结合起来。
<a th:each="lid : ${lists}" th:text="${lid}" th:href="@{/list?l=${lid}}">
hello
</a>
这会产生以下内容(其中lid = 45):
<a href="/list?l=${lid}">45</a>
所以,它在th:text上进行了替换,但没有在th:href。
上进行替换我不是要尝试进行任何类型的URL重写,我只是使用'@'语法,因为我希望Thymeleaf替换'lid'属性。
我正在使用当前版本的Thymeleaf(2.1.2)和Google App Engine。
答案 0 :(得分:6)
如果您不想进行任何网址重写,则不应使用@
语法。
您可以使用管道(|
)语法来执行一些文字替换:
th:href="|/list?l=${lid}|"
答案 1 :(得分:3)
您也可以尝试这种方式:
<a th:href="@{'/list?l=' + ${lid}}" th:text="${lid}">element</a>
答案 2 :(得分:0)
我没有足够的声誉在之前的帖子上添加评论,但上一篇文章中的Thymeleaf Source文档链接已被破坏。现在可以在以下链接找到文档:
第9节在本文档中使用URL中的表达式说明了在使用@语法生成URL时如何在其他表达式中使用表达式。以下是一个例子:
<a th:href="@{/order/details(id=${modelattribute})}"/>
将生成类似于以下链接:
http://domain.org/context/order/details?id=1
如果modelattribute在当前上下文中的值为1。