Spring 国际化 异常:No message found under code 'productname.required' for locale 'zh_CN'.

今天在学习Spring国际化时遇到了这个问题,记录如下:
Spring国际化配置:

    id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="resource.messages" />
        <property name="defaultEncoding" value="UTF-8" />
    

Spring 国际化 异常:No message found under code 'productname.required' for locale 'zh_CN'._第1张图片
异常: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文件夹
Spring 国际化 异常:No message found under code 'productname.required' for locale 'zh_CN'._第2张图片

<property name="basename" value="/WEB-INF/resource/messages" />

参考:http://stackoverflow.com/questions/11118090/caused-by-org-springframework-context-nosuchmessageexception-no-message-found

你可能感兴趣的:(异常分析,Eclipse,国际化)