1. 程式人生 > >關於國際化時報org.springframework.context.NoSuchMessageException錯,具體到No message found under code '你的鍵名' for locale 'zh_CN'.的解決方案

關於國際化時報org.springframework.context.NoSuchMessageException錯,具體到No message found under code '你的鍵名' for locale 'zh_CN'.的解決方案

exceptio contex 中文 -- icp tex ber enc src

使用IntelliJ IDEA開發工具解決方案:

總結原因,解決方案:

1,在使用messageSource.getMessage方法時,參數1的鍵名跟屬性文件中鍵名不一致,比如Controller中是name ,而配置文件中卻是names

2,因為使用springMvc提供了MessageSource類,所有也順帶給我們配置好了bean,我們只需註入(按名稱註入)就行,但是要去總配置文件,也就是application,properties配置中添加

#為了spring找到資源文件
spring.messages.basename=message

使用Exlicps開發工具解決方案

總結原因:

1.如果你使用eclipse創建的工程是class和src分開的,那麽資源屬性文件一定要放在src目錄以內。 2.屬性文件名的寫法: messages_zh_CN.properties (中文) messages_en_US.properties (英文) 3.配置messageSource這個bean(註意:一定是messageSource不是messageResource ,這是Spring規定的) 一般報這個錯,都是路徑問題,所有改變bean的路徑 默認配置是:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <!--默認到當前web應用下找 -->
                <value>classpath*:messages</value>
                <value>classpath:org/hibernate/validator/ValidationMessages</value>
            </list>
        </property>
        <property name="useCodeAsDefaultMessage" value="false"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="cacheSeconds" value="60"/>
</bean>

改變路徑位置:比如你的屬性文件放在resources/message/messages.propeties,那麽就改變路徑為:

    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <!-- 默認到當前web應用下找  -->
                <value>classpath:/messages/messages</value>
                <value>classpath:/messages/ValidationMessages</value>
            </list>
        </property>
        <property name="useCodeAsDefaultMessage" value="false"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="cacheSeconds" value="60"/>
    </bean>

問題解決方案純粹個人方式,若有不足,請評論區提出,謝謝

關於國際化時報org.springframework.context.NoSuchMessageException錯,具體到No message found under code '你的鍵名' for locale 'zh_CN'.的解決方案