Spring MVC:如何获取Thymeleaf中的当前URL

hzbexzde  于 2022-12-27  发布在  Spring
关注(0)|答案(4)|浏览(347)

我正在使用Thymeleaf Template Engine与Spring Web MVC,我被卡住了,而创建URL的帮助下,当前的网址。有什么办法可以获得当前的Thymeleaf HTML文件内?例如:假设我的浏览器地址栏中的当前网址是:
第一个月
现在我想创建一个像http://localhost:8080/project/web/category/mobiles/store/samsung这样的url

http://localhost:8080/project/web/category/mobiles?min_price=10&max_price=100.
代码看起来像这样

<a th:with="currentUrl='http://localhost:8080/project/web/category/mobiles'" 
   th:href="@{__${currentUrl}__/__${store.name}__}">
    Click to More Result
</a>

这里我使用currentUrl变量与硬编码的网址,所以我想一些相同的解决方案。硬编码的值不会每次工作,因为我有动态类别。
我尝试了同样的相对网址,但它不为我工作。

<a th:href="@{/store/__${store.name}__}">Click to More</a>

//will produce: http://localhost:8080/project/web/store/samsung
//I want: http://localhost:8080/project/web/category/mobiles/store/samsung

请看一下,如果我做错了什么,请告诉我。

ugmeyewa

ugmeyewa1#

哦,我得到了这个问题的解决方案。我错过了文档中的{#httpServletRequest.requestURI}
以下是对我有效的解决方案:

<a th:href="@{__${#httpServletRequest.requestURI}__/store/__${store.name}__}">Click to More</a>
//Will produce: http://localhost:8080/project/web/category/mobiles/store/samsung
yhxst69z

yhxst69z2#

您可以使用两个单引号'获取当前URL。示例:

<a th:href="@{''(lang=de)}">Deutsch</a>

请注意,这不包括现有的URL参数。

9rygscc1

9rygscc13#

如果请求的URL是例如:http://localhost:8080/my-page
我可以得到这个值:/我的页面使用此:http服务请求.请求URI
例如,如果必须加载某些资源,可以用途:

<script th:src="@{|${#httpServletRequest.requestURI}/main.js|}"></script>

渲染后的html将是:

<script src="/my-page/main.js"></script>
pu3pd22g

pu3pd22g4#

在Thymeleaf 3.1中,当前URL可以从上下文对象获得:

<form th:action="${#ctx.springRequestContext.requestUri}">

相关问题