No message found under code 'xxx' for locale 'zh_CN'.

本文介绍如何在application.yml中正确配置Spring消息国际化basename属性,确保国际化文件路径设置正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在application.yml中

spring:
    messages: 
        basename: resource_i18/messages

切记:basename冒号后面 有个空格 !!!然后在写国际化文件的basename

### 解析 Spring 国际化资源未找到问题 当遇到 `No message found under code 'user.password.not.match' for locale 'zh_CN'` 的错误提示时,表明应用程序未能成功加载指定的国际化消息源。这通常是因为配置文件路径设置不当、资源文件命名不符合约定或是构建过程中忽略了这些资源文件。 #### 配置调整建议 确保在 Spring 配置文件中正确指定了自定义的消息资源位置。对于 XML 方式的配置,应当修改 `<bean>` 或者 `<context:message-source>` 中的相关属性来指向实际存在的 `.properties` 文件[^2]: ```xml <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="classpath:i18n/messages"/> </bean> ``` 如果采用 Java Config,则应相应地更新 `@Bean` 方法内的参数: ```java @Bean public MessageSource messageSource() { ResourceBundleMessageSource source = new ResourceBundleMessageSource(); source.setBasename("i18n/messages"); return source; } ``` #### 检查资源文件结构 确认项目的 i18n 目录下存在名为 `messages_zh_CN.properties` 的文件,并且其中包含了如下形式的关键字定义[^4]: ```properties user.password.not.match=密码不匹配,请重新输入。 ``` 注意关键字名称需与代码中的调用保持一致;任何拼写差异都会导致查找失败。 #### 构建过程验证 有时即使上述两项均无误,在某些 IDE 或打包工具环境下仍可能出现编译后的 jar/war 包内缺失 i18n 文件的情况。此时可以尝试清理项目缓存并重新执行完整的构建流程,或者手动检查最终产物里是否确实含有预期的资源文件夹及其内容[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值