java - 链接 Spring CookieLocaleResolver 和 AcceptHeaderLocaleResolver

标签 java spring spring-mvc internationalization

我想首先通过检测 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/

相关文章:

java - 为什么此代码会抛出异常 - 比较方法违反了其一般契约

spring - 自定义 Spring Zuul 动态路径

java - spring中如何通过xml文件将值传递给多个参数化的构造函数?

java - Validator 的目标无效 - Spring MVC

java - 将 Elasticsearch 与 Spring MVC 集成

java - HTTP 状态 500 - 实例化 servlet 类 org.springframework.web.servlet.DispatcherServlet 时出错

java - 获取spring boot分页号从1开始而不是0

java - 使用 Java 的外键引用

java - 将 ConsoleHandler 与自己的 PrintStream 一起使用会抑制 System.err

java - 如何使用SimpleJdbcTemplate queryForMap