提问者:小点点

在Spring Boot中更改语言后将语言部分添加到现有url中


我有一个关于在Spring Boot中更改语言后将语言部分添加到现有URL的问题

这是我的URL按名称升序列出所有品牌。

admin/brands/page/1?sortField=name&sortDir=asc

当我改变语言时,URL如下所示。

admin/brands/page/1?lang=fr

这是我在thymeleaf中的语言更改代码片段,如下所示。

<li class="nav-item">
    <a class="nav-link" th:href="@{?lang=en}">
        <img th:src="@{/images/english.png}" width="30">
    </a>
</li>
                
<li class="nav-item">
    <a class="nav-link" th:href="@{?lang=fr}">
        <img th:src="@{/images/french.png}" width="30">
    </a>
</li>

我想得到这个urladmin/品牌/页面/1? sortField=name

我该怎么做?


共1个答案

匿名用户

下面是我的解决方案。

<li class="nav-item">
    <a class="nav-link" 
       th:with="urlBuilder=${T(org.springframework.web.servlet.support.ServletUriComponentsBuilder).fromCurrentRequest()}"
       th:href="${urlBuilder.replaceQueryParam('lang', 'en').toUriString()}">
        <img th:src="@{/images/english.png}" width="30">
    </a>
</li>
                
<li class="nav-item">
    <a class="nav-link" 
       th:with="urlBuilder=${T(org.springframework.web.servlet.support.ServletUriComponentsBuilder).fromCurrentRequest()}"
       th:href="${urlBuilder.replaceQueryParam('lang', 'tr').toUriString()}">
         <img th:src="@{/images/turkish.png}" width="30">
    </a>
</li>