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

Add language part into existing url after changing Language in Spring Boot

在 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/brands/page/1?sortField=name&sortDir=asc&lang=fr

我该怎么做?

下面是我的解决方案。

<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>