无法使用 ResourceBundleMessageSource 找到消息
Not able to find messages with ResourceBundleMessageSource
我目前正在使用以下工作正常的代码:
<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>
我不断收到异常 "No message found under code 'title' for locale 'en_US'."(标题是一个例子)
看过类似的问题后,我也尝试过将basename参数的值改成以下任意一种,但都没有成功:
WEB-INF/resources/lang/lang
.WEB-INF.resources.lang.lang
WEB-INF.resources.lang.lang
resources.lang.lang
lang.lang
朗
classpath:resources.lang.lang
创建一个名为 lang_en_US.properties 的文件也没有帮助。
显然,它正在查找 java 文件夹(class 路径的根目录)而不是 Web 文件夹。
我在 java 文件夹中创建了一个名为 lang 的新包,并将 lang*.properties 文件移至其中。
然后我将 lang.lang 作为 basename 的值,它开始工作了。
更新:项目清理后停止工作。 lang 文件应放入 "resources" 文件夹,而不是 java 文件夹。从技术上讲,它们在构建后最终会出现在同一个地方,但 IDE 似乎忽略了 java 文件夹中的非 class 文件并简单地跳过它们。
我目前正在使用以下工作正常的代码:
<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>
我不断收到异常 "No message found under code 'title' for locale 'en_US'."(标题是一个例子)
看过类似的问题后,我也尝试过将basename参数的值改成以下任意一种,但都没有成功:
WEB-INF/resources/lang/lang
.WEB-INF.resources.lang.lang
WEB-INF.resources.lang.lang
resources.lang.lang
lang.lang
朗
classpath:resources.lang.lang
创建一个名为 lang_en_US.properties 的文件也没有帮助。
显然,它正在查找 java 文件夹(class 路径的根目录)而不是 Web 文件夹。
我在 java 文件夹中创建了一个名为 lang 的新包,并将 lang*.properties 文件移至其中。
然后我将 lang.lang 作为 basename 的值,它开始工作了。
更新:项目清理后停止工作。 lang 文件应放入 "resources" 文件夹,而不是 java 文件夹。从技术上讲,它们在构建后最终会出现在同一个地方,但 IDE 似乎忽略了 java 文件夹中的非 class 文件并简单地跳过它们。