4

是否有任何特殊工具Thymeleaf可以通过添加/删除/替换参数来构造 URL?例如,我需要向同一页面发出请求,但在请求中添加了一个附加参数“p=1”。以便:

'/foo?a=b' becomes '/foo?a=b&p=1' // addition
'/foo?p=0' becomes '/foo?p=1'     // replacing

@{}在这里似乎没有帮助。我会想象存在类似以下内容: @{#currentUri(*, p=1, !q)},其中“*”代表所有现有参数,“p=1”表示添加/替换和“!” 意味着排除。

是否Thymeleaf有类似的东西或任何其他用于灵活 URL 构造的语法?

4

2 回答 2

1

无论如何,当您问这个问题时,我知道它不久前。

看来您正在寻找 httpServeltRequest.requestURI

<a th:href="@{${'~' + #httpServletRequest.requestURI}(lang=${language})}" th:text="#{${'Language.' + lang}}"><span>Switch to English</span></a>

并且#httpServletRequest.QueryString您可以获取当前 url 中给出的所有参数。不幸的是,如果您可以排除任何参数,我不知道。

来源:http: //forum.thymeleaf.org/How-to-link-to-current-page-and-exchange-parameter-td4024870.html

于 2014-07-15T12:52:45.053 回答
0

似乎Thymeleaf没有提供任何此类实用程序。

但是,由于它利用Spring EL了它,因此很容易编写一个带有一组实用方法的辅助类,并使其可供表达式调用这些方法。从语法上讲,它看起来非常接近问题中的假想示例:@{#currentUri("*", "p=1", "!q")}

于 2013-08-28T12:49:56.150 回答