thymeleafurl构造
thymeleafurl构造,url,uri,thymeleaf,Url,Uri,Thymeleaf,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?
例如,我需要向同一页发出请求,但需要在请求中添加一个附加参数“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构造语法?似乎Thymeleaf
不提供任何此类实用程序
但是,由于它利用了
springel
,因此编写带有一组实用方法的helper类并使其可供表达式调用这些方法是相当容易的。从语法上看,它可以非常接近这个问题中的想象例子:@{currentUri(“*”,“p=1”,“!q”)}
我知道你刚才问这个问题的时候,无论如何
似乎您正在查找httpServeltRequest.requestURI
<a th:href="@{${'~' + #httpServletRequest.requestURI}(lang=${language})}" th:text="#{${'Language.' + lang}}"><span>Switch to English</span></a>
使用#httpServletRequest.QueryString
可以获得当前url中给定的所有参数。不幸的是,如果可以排除任何参数,我就不是舒尔
来源:
queryString
只是一个字符串,要将修改后的URL重新构建为一行表达式是很困难的。它需要将查询字符串分解为键和值,然后逐个参数重新构造URL参数。