【Spring】[bug]国际化资源文件找不到 NoSuchMessageException

本文详细介绍了如何解决在Spring应用中遇到的NoSuchMessageException异常,主要原因是国际化资源文件未能被正确加载。文章提供了正确的配置示例及资源文件放置的最佳实践。

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

org.springframework.context.NoSuchMessageException: No message found under code 'userinfo' for locale 'en_US'.

在使用Spring 国际化资源文件的时候报了这个错误,仔细检查发现这是 路径问题

bean.xml 代码如下:

	<bean id="messageSource"
		class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basenames">
			<list>
				<value>messages</value>
			</list>
		</property>
	</bean>
这里的路径是要在主路径下寻找以 messages 开头的资源文件,由于开发用的是 Maven project ,所以Spring 会从 Source package 下开始找,也就是在 src/java/main 、src/test/resources 这些包下面找,为了开发的规范,一般会把 messages_xx.properties 这样的资源文件放在 src/java/resources/messages 下,然后在 bean.xml 中指定

<value>messages/messages</value>


附:

Spring 对国际化资源文件的搜索顺序为:

messages_zh_CN.properties
messages_zh.properties
messages.properties
messages_zh_CN.class
messages_zh.class
messages.class



End .


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值