当前位置: 首页 > 知识库问答 >
问题:

Spring MVC:如何在Thymeleaf中获取当前网址

赵炯
2023-03-14

我将Thymeleaf模板引擎与Spring Web MVC结合使用,在使用当前url创建url时遇到了问题。有没有办法获取Thymeleaf HTML文件中的最新信息?例如:假设我在浏览器地址栏中的当前url是:

http://localhost:8080/project/web/category/mobiles

现在我想做一个这样的URL < code > http://localhost:8080/project/web/category/mobiles/store/Samsung

http://localhost:8080/project/web/category/mobiles?min_price=10

所以我认为代码应该是这样的

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

在这里,我使用带有硬编码url的电流url变量,所以我想为其提供一些解决方案。硬编码的值不会每次都起作用,因为我有动态类别。

我尝试了与相对网址相同的方法,但它对我不起作用。

<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

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


共有3个答案

穆彬郁
2023-03-14

如果所请求的url是例如:http://localhost:8080/my-页面

我可以得到这个值: /my-page使用这个:httpServletRequest.requestURI

例如,如果您必须加载一些资源,您可以使用:

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

并且渲染的html将是:

<script src="/my-page/main.js"></script>
吕霖
2023-03-14
匿名用户

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

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

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

狄溪叠
2023-03-14

哦,我找到了解决办法。我错过了留档中的{#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
 类似资料:
  • 问题内容: 我用来发出几个http请求(显然)。现在,我需要发出请求并从最终URL中提取一些查询字符串(存在重定向)。 因此,问题是如何找到URL(如果重定向了客户端,则为最终URL)?Response中没有这样的字段。 请注意,我不需要停止重定向…仅在请求后查找URL是什么 问题答案: 您将回调添加到 然后,您可以在发生新请求时对其进行检查。只要确保设置某种限制来防止重定向循环(如文档中所述,默

  • 我使用selenium获取网页,并发送kenword获取新页面。但是我怎样才能获得新的网页,并搜索我需要的信息呢 请原谅我没有使用降价。我的问题是:我想在搜索关键词后获得网页,但我编写了浏览器。page_源码,它是百度的主页

  • 我试图测试我的Spring MVC控制器,但我不断收到与Thymeleaf模板相关的错误。我真的不想在控制器测试中处理模板错误,因为这不是我真正感兴趣的。当模板不存在时让测试失败是可以的,但现在我收到了与根据错误代码找不到消息相关的错误。 当我运行应用程序时,这个问题不存在。我一直在尝试弄清楚如何设置测试环境来解决这个问题,但在那里我找不到任何有效的方法。现在,我只是真的想让控制器代码正常工作。

  • 问题内容: 获取当前时间的模块/方法是什么? 问题答案: 采用: 而只是时间: 有关更多信息,请参见文档。 要保存输入,可以datetime从datetime模块中导入对象: 然后datetime.从以上所有位置移除引线。

  • 问题内容: 我在使用android定位系统的NETWORK提供程序获取当前位置坐标时遇到麻烦。 已经阅读了很多教程,并为我的项目实现了4到5个现有的类,所有这些类都给了我最后的坐标,而不是当前的坐标。 我很确定这个问题是我遗漏的根本问题,但是我无法理解到底是什么。 我现在正在使用的代码: 这是我的主要活动 这是我用于跟踪的课程: 这是我的AndroidManifest.xml 实际上,GPS定位工

  • 问题内容: 如何在JavaScript中获取当前日期? 问题答案: 使用生成一个新的包含当前日期和时间对象。 这将以mm / dd / yyyy的格式给您今天的日期。 只需更改为所需的任何格式。