使用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>
問題解決方案純粹個人方式,若有不足,請評論區提出,謝謝