提问者:小点点

thymeleaf-组合th: each与th:href


我是Thymeleaf(和webdev)的新手,我正在尝试将Thymeleaf迭代(th: each)与URL重写(th:href)结合起来。

<a th:each="lid : ${lists}" th:text="${lid}" th:href="@{/list?l=${lid}}">
hello
</a>

这会产生以下结果(其中盖子=45):

<a href="/list?l=${lid}">45</a>

所以,它在th: text上做了替换,但在th:href上没有。

我没有试图做任何类型的URL重写,我只是使用@语法,因为我希望Thymeleaf替换的盖子属性。

我正在将当前版本的Thymeleaf(2.1.2)与Google App Engine一起使用。


共3个答案

匿名用户

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

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

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

来源: Thymeleaf留档

匿名用户

你也可以这样试试:

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

匿名用户

我没有足够的声誉来添加对以前帖子的评论,但是以前帖子的Thymeleaf源留档链接被破坏了。现在可以在以下链接中找到文档:

Thymeleaf标准URL语法

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

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

将产生类似于以下链接:

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

如果模型属性在当前上下文中的值为1。