从custom.properties文件访问值

sg3maiej  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(308)

我正在做一件事 Spring MVC + Thymeleaf 项目。有一个 test.properties 文件直接在下面 resources 文件夹,如- resources/test.properties .
test.properties 文件包含以下内容key:value pairs 我想在视图中访问的。

sample.key=key
``` `property-placeholder` 是在 `servlet-context.xml` 文件。

<context:property-placeholder location="classpath:*.properties"/>

以及 `applicationContext.xml` 保持-

<bean id="messageSourceAccessor" class="org.springframework.context.support.MessageSourceAccessor">
    <constructor-arg ref="messageSource"/>
</bean>
当我尝试访问 `sample.key` 在 `test.html` 它显示的文件 `??sample.key_en_US??` 而是显示实际价值。
368yc8dk

368yc8dk1#

经过一系列的尝试和错误,我找到了两种方法-
而不是使用 p:basenames="... , ..." 如果我使用 <util:list> 添加 test.properties 与现有文件一起归档 .properties 文件,解决问题。

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
    p:fallbackToSystemLocale="false">
    <property name="basenames">
        <util:list>
            <value>classpath:test</value>
            <value>/WEB-INF/i18n/messages</value>
            <value>/WEB-INF/i18n/application</value>
        </util:list>
    </property>
</bean>

或使用现有的一个和附加 classpath:test<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" p:basenames="/WEB-INF/i18n/messages, /WEB-INF/i18n/application, classpath:test" p:fallbackToSystemLocale="false"/>p:basename 直视 webapp 文件夹。 classpath: 是这里要定位的关键点 test.properties 文件位于 resources 文件夹。

相关问题