Spring国际化语言切换不生效

使用SessionLocaleResolver一致不生效,获取message时候报错:

java.lang.UnsupportedOperationException: Cannot change HTTP accept header - use a different locale resolution strategy

at org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.setLocale...

org.springframework.web.servlet.i18n.LocaleChangeInterceptor.preHandle...

最终定位到原因,DispatcherServlet读取到的仍然是AcceptHeaderLocaleResolver,注入了但没有生效,问题代码如下:

java 复制代码
@Bean
@Primary
public LocalResolver sessionLocaleResolver() {
     SessionLocaleResolver slr = new SessionLocaleResolver();
     slr.setDefaultLocale(Locale.ENGLISH);
     slr.setDefaultTimeZone(TimeZone.getTimeZone("UTC"));
     return slr;
}

修改后代码如下:

java 复制代码
@Bean("localeResolver")
   @Primary
   public LocalResolver sessionLocaleResolver() {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        slr.setDefaultLocale(Locale.ENGLISH);
        slr.setDefaultTimeZone(TimeZone.getTimeZone("UTC"));
        return slr;
}
相关推荐
10x103 小时前
# Docker 使用笔记:重新理解镜像、容器与数据持久化
后端
Sunny_yiyi3 小时前
Java接入飞书发送通知消息
java·windows·飞书
IT_陈寒4 小时前
Redis 7个性能优化技巧,让我们的QPS从5k提升到20k+
前端·人工智能·后端
Paxon Zhang4 小时前
数据结构之**二叉树**超全秘籍宝典2
java·数据结构·算法
百锦再4 小时前
金仓数据库提出“三低一平”的迁移理念
开发语言·数据库·后端·python·rust·eclipse·pygame
Mos_x4 小时前
【Spring Boot】Spring Boot解决循环依赖
java·spring boot·spring
卡卡酷卡BUG4 小时前
2025年Java面试题及详细解答(MySQL篇)
java·开发语言·mysql
ZHE|张恒4 小时前
深入理解 Spring 原理:IOC、AOP 与事务管理
java·后端·spring