【发布时间】:2016-12-12 17:17:33
【问题描述】:
我有一个传统的 Spring4/Thymeleaf i18n 应用程序 我用经典轻松切换语言环境
org.springframework.web.servlet.i18n.LocaleChangeInterceptor
和
org.springframework.web.servlet.i18n.CookieLocaleResolver
切换时我总是发送到服务器 /home?lang=fr。它工作正常。但我需要更复杂的行为。 我需要做的是在切换语言环境的同时保留当前页面。
我用这个 thymeleaf sn-p 找到了一个半有效的解决方案:
th:with="currentUrl=(${#httpServletRequest.pathInfo + '?' + #strings.defaultString(#httpServletRequest.queryString, '')})
问题是我需要自己实现很多极端情况:
- 当已经有任何查询参数时
- 如果有 lang=en 参数,
- 等。
有人知道如何使用 native Spring 或 Thymeleaf 工具来管理这个案例吗?或者我需要为 Thymeleaf 编写自己的处理器?
【问题讨论】:
-
您有用于测试此功能的示例应用程序吗?能够针对已经设置的项目尝试并找到解决方案会很高兴。我猜你的语言选择器在每一页上都显示为页眉或页脚。我希望设置一些拦截器,为模型添加一个值,其中包含当前页面的 url。然后模板只负责为页面输出那些语言特定的 url。
标签: spring spring-mvc url internationalization thymeleaf