簡體   English   中英

在Java Spring中使用資源包中的語言環境

[英]Using Locale from Resource Bundle in Java Spring

我正在學習使用resouce包在我的項目中打印與語言環境相關的消息。

application.xml中:

<bean class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="ru.bpc.svat.svnr.integration.banking.messages" />
</bean>
<bean class="ru.bpc.svat.svnr.integration.banking.application.SpringContextMessageFactory"  />

目錄src \\ main \\ resources \\ ru \\ bpc \\ svat \\ svnr \\ integration \\ banking包含文件:

messages.properties
messages_ru.properties
messages_ru_RU.properties

每個都有一行:

test = testmessage

在測試類中,我獲得了消息工廠的實例,並嘗試獲得消息:

@Autowired private MessageFactory messageFactory;
...
messageFactory.getMessage("test", new Object[]{}, Locale.getDefault());

然后我得到一個例外:

No message found under code 'test' for locale 'ru_RU'.

它出什么問題了? 這可能是一個愚蠢的問題,但這是我的第一次經驗。 謝謝您的回答。

<bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename">
            <value>locale\customer\messages</value>
        </property>
    </bean>

</beans>

最后使用SpringContext context.getMessage()方法讀取您的值。

注意:假定您的屬性文件位於“ resources \\ locale \\ customer \\”文件夾中,如上面的值標簽所述。 基本上,這些文件必須位於項目的類路徑中。

讓我知道它是否可以解決您的問題,請接受我的回答!

如果將文件直接放置到src / main / resources中(而不是src / main / resources的子目錄中,該怎么辦?)只是一個想法。通常,如果文件在類路徑中,該文件應該可以找到。

嘗試更換:

<bean class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="ru.bpc.svat.svnr.integration.banking.messages" />
</bean>

<bean class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="ru\bpc\svat\svnr\integration\banking\messages" />
</bean>

確保與您班級相對的路徑。 在其他情況下,將資源放在src / main / resources中,並使用classpath:\\后綴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM