无法使用ResourceBundleMessageSource查找消息

时间:2017-10-23 23:58:25

标签: java spring resourcebundle

我目前正在使用以下正常运行的代码:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>/WEB-INF/resources/lang/lang</value>
            </list>
        </property>
        <property name="defaultEncoding" value="UTF-8"/>
    </bean>

当我将ReloadableResourceBundleMessageSource更改为ResourceBundleMessageSource时,它将停止工作。

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/resources/lang/lang" />
</bean>

我不断收到例外情况&#34;在代码&#39;标题&#39;下找不到任何消息对于语言环境&#39; en_US&#39;。&#34; (标题是一个例子)

在阅读类似问题后,我也尝试将basename参数的值更改为以下任何一项,但没有成功:     WEB-INF /资源/郎/郎     名.web-INF.resources.lang.lang
    WEB-INF.resources.lang.lang
    resources.lang.lang
    lang.lang
    郎
    classpath:resources.lang.lang

enter image description here

制作名为lang_en_US.properties的文件也没有帮助。

1 个答案:

答案 0 :(得分:0)

显然,它正在查找java文件夹(类路径的根目录),而不是web文件夹。

我在java文件夹中创建了一个名为lang的新包,并将lang * .properties文件移动到它。

然后我把lang.lang作为basename的值,它开始工作了。

更新:项目清理后停止工作。 lang文件应该进入&#34;资源&#34;文件夹,而不是java文件夹。它们在构建之后在技术上最终会在同一个地方结束,但是IDE似乎忽略了java文件夹中的非类文件而只是跳过它们。

enter image description here