我想首先通过检测 cookie 来解析用户的语言环境,如果没有,则通过接受语言 header 来解析。 Spring 似乎只想接受一个 LocaleResolver
。
有趣的是,CookieLocaleResolver
的 spring 文档状态
LocaleResolver implementation that uses a cookie sent back to the user in case of a custom setting, with a fallback to the specified default locale or the request's accept-header locale.
但实际上似乎并非如此;测试表明它不起作用,快速查看源代码表明它只有在没有 cookie 时才会获得默认值。
是编写我自己的 LocaleResolver
实现的唯一解决方案吗?
最佳答案
看起来 CookieLocaleResolver
完全符合你的要求,只要你不设置它的 defaultLocale
。
如果你想要一些不同的东西(例如,当没有找到 cookie 和 Accept
header 时回退到 defaultLocale
),你可以覆盖它的 determineDefaultLocale()
相应地。
关于java - 链接 Spring CookieLocaleResolver 和 AcceptHeaderLocaleResolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8341858/