使用@ url 语法传递给 Thymeleaf 的转义参数

Posted

技术标签:

【中文标题】使用@ url 语法传递给 Thymeleaf 的转义参数【英文标题】:Escape parameter passed to Thymeleaf using @ url syntax使用@ url 语法传递给 Thymeleaf 的转义参数 【发布时间】:2016-06-21 03:01:15 【问题描述】:

我在我的 Spring MVC 应用程序中使用 Thymeleaf (3.0.0.BETA02)。

我正在尝试创建一个 URL。代码如下所示:

<a href="edit.html" th:href="@/slugs/edit/id(id=$slug.id)">[[$slug.id]]</a>

这很好用,除了 $slug.id 的值可能类似于 slug:/path/to/page,而这个值不是逃脱了。所以我最终得到一个如下所示的 URL:/slugs/edit/slug:/path/to/page

这会给我一个 404,因为 URL 没有映射到控制器。

我想要的是创建 URL 以便它被转义:

/slugs/edit/slug%3A%2Fpath%2Fto%2Fpage

Thymeleaf 是否提供了一种方法来对作为路径参数发送的参数进行转义?

谢谢。

【问题讨论】:

【参考方案1】:

我已经深入研究了 Thymeleaf 的源代码,并且可以看到我认为的几个错误。结果是我正在尝试做的事情目前在 3.0.0.BETA02 中是不可能的。我将尝试联系 Thymeleaf 团队讨论这个问题。

【讨论】:

以上是关于使用@ url 语法传递给 Thymeleaf 的转义参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在thymeleaf和freemarker的url中绑定传递的参数

使用 Thymeleaf 和 Spring Boot 将我的 HTML 中的整数数组传递给控制器

是否可以使用 AJAX 调用中的成功对象并将其传递给 thymeleaf 进行迭代

Thymeleaf视图不会将实体ID传递给Spring @Controller,而是将其与其他属性一起传递

Thymeleaf:传递 javascript 参数

Thymeleaf 将对象集作为对象的成员传递给控制器