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 .