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;
}
相关推荐
红烧大青虫7 小时前
setInterval 倒计时实现:60s 验证码发送逻辑
后端·华为·harmonyos·鸿蒙系统
Herbert_hwt8 小时前
建立Java程序开发
java·开发语言
好好沉淀8 小时前
@ExcelIgnoreUnannotated 和 @AutoMapper 详解
java
小村儿8 小时前
连载14-实战篇--一个半月,我一个人和 Claude Code 搭出一套数字人工程
前端·后端·ai编程
你驴我8 小时前
WhatsApp 多账号下消息已读回执的实时聚合与推送实践
后端·python
用户208046804568 小时前
Python3 注释编写完全指南:从基础规范到高效实践
后端
愚公移码8 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
苏三说技术8 小时前
Jackson3来了,变化真大!
后端
驰骋工作流8 小时前
流程引擎BPM设计之:流程消息
java·工作流引擎·bpm·jflow·ccflow
dogstarhuang8 小时前
从 0 到 1 搭建可收费的 API 开放平台(实战)
java·架构·api