我有一个传统的Spring4/Thymeleaf国际化应用程序。我可以使用经典方式轻松切换语言环境。
org.springframework.web.servlet.i18n.LocaleChangeInterceptor
并且
org.springframework.web.servlet.i18n.CookieLocaleResolver
当我切换时,我总是将/home?lang=fr发送到服务器。 这很有效。 但我需要更复杂的行为。 我需要做的是在切换语言环境的同时保留当前页面。
我通过以下thymeleaf片段找到了一个半工作的解决方案:
th:with="currentUrl=(${#httpServletRequest.pathInfo + '?' + #strings.defaultString(#httpServletRequest.queryString, '')})
问题在于我需要处理许多边缘情况:
- 当已经有查询参数时
- 如果有一个lang=en参数,
- 等等。
有人知道如何使用本地的 Spring 或 Thymeleaf 工具来处理这个问题吗?还是我需要编写自己的 Thymeleaf 处理器?