轉自:https://www.cnblogs.com/Jacob186/p/6254423.html
用spring做國際化時經常會報:
org.springframework.context.NoSuchMessageException: No message found under code 'userlogin' for locale 'zh_CN'.
at org.springframework.context.support.DelegatingMessageSource.getMessage(DelegatingMessageSource.Java:65)
at org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:646)
at com.neusoft.Test.Test.main(Test.java:43)
Exception in thread "main"
這樣的錯誤。
總結一下,有可能由以下原因造成:
1.如果你使用eclipse創建的工程是class和src分開的,那么資源屬性文件一定要放在src目錄以內
2.屬性文件名的寫法:
messages_zh_CN.properties (中文)
messages_en_US.properties (英文)
3.配置messageSource這個bean(注意:一定是messageSource不是messageResource ,這是Spring規定的)
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>
還有一個要注意的是.如果你的資源文件不是在根目錄下而在com.wzw.messages.messages目錄下的話,你就應該這樣配置了:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>com.wzw.messages.messages</value>
</list>
</property>
</bean>
PS:1 我一開始做spring 國際化的時候也遇到了這個問題,花了差不多一個小時才找到問題根源:如果你使用eclipse創建的工程是class和src分開的,那么資源屬性文件一定要放在src目錄以內,如果創建資源文件時候是通過工程右鍵創建,那么myeclipse默認是放在WebRoot並列的根文件夾下
2,屬性文件名不一定要是message或是messages,可以根據自己愛好隨意取,但是記住一定要在配置文件(**.xml)文件中的<value>???</value>中填入自己取好的名字,比如新建一個資源文件alias_zh_CN.properties,那么配置文件應該這么寫:<value>alias</value>,我親自試過,是可行的.
3 ,這篇文章是轉載自新浪博客,本意是讓初學者少走彎路,原文URL:http://blog.sina.com.cn/s/blog_4cab775e01000a14.html
- 頂
- 0
- 踩
- 0
