java - 无法使用 ResourceBundleMessageSource 查找消息

标签 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>

我不断收到异常消息“在语言环境‘en_US’的代码‘标题’下找不到消息。” (标题为示例)

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

类路径:resources.lang.lang

enter image description here

创建一个名为 lang_en_US.properties 的文件也没有帮助。

最佳答案

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

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

然后我将 lang.lang 作为基本名称的值,它开始工作。

更新:项目清理后停止工作。 lang 文件应该进入“resources”文件夹,而不是 java 文件夹。从技术上讲,它们在构建后最终出现在同一个位置,但 IDE 似乎会忽略 java 文件夹中的非类文件并简单地跳过它们。

enter image description here

关于java - 无法使用 ResourceBundleMessageSource 查找消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46900189/

相关文章:

java - 如何在保持缓存自动配置的同时添加自定义@Cacheable缓存?

java - 将 @Transactional 与 hibernate 一起使用

java - WindowBuilder:在运行时更改语言

java - 如何在运行时确定所有可用的 ResourceBundle?

java - 在Spring中加载ResourceBundle对象

java - Android 每次访问页面时都运行 Java

mysql - Gradle 无法识别 mysql 依赖项

java - Spring Web Flow——流程被重置

java - 当我尝试执行请求时出现 IllegalArgumentException

java - 创建两个线程,一个显示奇数和其他偶数