Spring boot 为什么会错误地显示thymeleaf消息?

Spring boot 为什么会错误地显示thymeleaf消息?,spring-boot,thymeleaf,Spring Boot,Thymeleaf,1.我已经定义了i18n文件的位置 spring.messages.basename=i18n/messages 2.存在用于登录的消息和密钥的文件。请记住 i18n/messages_zh_CN.properties login.rememberMe=记住我 login.rememberMe=Remember Me i18n/messages\u en\u US.properties login.rememberMe=记住我 login.rememberMe=Remember Me

1.我已经定义了i18n文件的位置

spring.messages.basename=i18n/messages
2.存在用于
登录的消息和密钥的文件。请记住

i18n/messages_zh_CN.properties

login.rememberMe=记住我
login.rememberMe=Remember Me
i18n/messages\u en\u US.properties

login.rememberMe=记住我
login.rememberMe=Remember Me
3.这是Login.html的消息内容

<label th:text="#{login.rememberMe}"></label>

显示登录的页面。请记住,我没有发现问题


问题在于,弹簧靴只有在满足条件时才会生效。这里最重要的是:

这基本上意味着您的
MessageSource
仅在存在名为
classpath:i18n/messages.properties
的文件时创建,如果所有区域设置都不匹配,则该文件是默认的resourcebundle


我的猜测是,您只有一个
messages\u en\u US.properties
和一个
messages\u zh\u CN.properties
。这意味着为了解决这个问题,您需要创建一个默认的
messages.properties
文件

您可以选择创建一个空白的
messages.properties
文件,或者决定您的en-USzh-CN区域设置是您的默认设置,并将其中一个重命名为
messages.properties


或者,如果不想创建默认的resourcebundle,也可以创建自己的
MessageSource

@Bean
公共资源BundleMessageSource messageSource(){
ResourceBundleMessageSource=新ResourceBundleMessageSource();
来源.设置名称(“i18n/消息”);
source.setUseCodeAsDefaultMessage(true);
返回源;
}

该属性是否存在?为什么它的开头是“lib”?@DaveNewton是的,它确实存在,Intellij Idea的功能是带有
lib
的消息。代码图像在这里是无用的。请参阅,以获取原因列表。代码是文本,可以直接复制/粘贴到您的文章中,并正确格式化为代码。图像应保持在绝对最小值,并且仅在没有图像就无法演示问题时使用。@KenWhite我已经更新了我的帖子,谢谢。实际上,设置为:
spring.messages.fallbackToSystemLocale:false
,默认的true将作为系统区域设置。