今天在学习Spring国际化时遇到了这个问题,记录如下:
Spring国际化配置:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="resource.messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
异常:org.springframework.context.NoSuchMessageException: No message found under code ‘productname.required’ for locale ‘zh_CN’.
分析:加载src下某个包里的文件时,应该使程序定位到classpath再加载文件
解决方案:将
<property name="basename" value="resource.messages" />改为:
<property name="basename" value="classpath:resources/messages" />
其实还有一个解决办法,在WEB-INF下添加resource文件夹
<property name="basename" value="/WEB-INF/resource/messages" />