thymeleaf - 结合th:每个与th:href

时间:2014-02-22 23:23:07

标签: java thymeleaf

我是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。

3 个答案:

答案 0 :(得分:6)

如果您不想进行任何网址重写,则不应使用@语法。

您可以使用管道(|)语法来执行一些文字替换:

th:href="|/list?l=${lid}|"

来源:Thymeleaf documentation

答案 1 :(得分:3)

您也可以尝试这种方式:

<a th:href="@{'/list?l=' + ${lid}}" th:text="${lid}">element</a>

答案 2 :(得分:0)

我没有足够的声誉在之前的帖子上添加评论,但上一篇文章中的Thymeleaf Source文档链接已被破坏。现在可以在以下链接找到文档:

Thymeleaf Standard URL Syntax

第9节在本文档中使用URL中的表达式说明了在使用@语法生成URL时如何在其他表达式中使用表达式。以下是一个例子:

<a th:href="@{/order/details(id=${modelattribute})}"/>

将生成类似于以下链接:

http://domain.org/context/order/details?id=1

如果modelattribute在当前上下文中的值为1。