2011-11-03 58 views
9

的applicationContext-service.xml的春:没有下代码发现现场消息 'EN_US'

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="basenames"> 
     <list><value>messages</value></list> 
    </property> 
</bean> 

我下/src/messages_en_US.properties

registerForm.passwordNotMatch=Password does not match. 

messages_en_US.properties这是行代码带来了错误:

binding.addError(new FieldError(REGISTER_FORM, "passwordNotMatch", messageSource.getMessage("registerForm.passwordNotMatch", null, locale))); 

错误:没有下代码“发现消息registerForm.passwordNotMa tch'用于区域设置'en_US'。

什么可能是错误的?

classpath:messages 

+0

'applicationContext-Service.xml'声明在哪里?准确地说, – skaffman

回答

11

不,如果你改变它的工作?

我曾经有过使用ReloadableResourceBundleMessageSource的经验,在jsp中找不到属性文件。在basename之前加入classpath:解决了我的问题。

好吧,尽管我的项目是由maven管理的,但我认为你可以试试它。

0

我有同样的问题。我试过classpath:,但没有什么区别。最后在我的属性文件的最后一行加入回车符(所以光标位于下一行,即文件的结尾)。另外,如果您使用的是Maven,并且您的属性文件如下所示:/resources/xxxx.properties,资源目录会自动拉入您生成的战争中,因此classpath:不是必需的。

+1

的目录应该是'PROJECT_BASE/src/main/resources /',只是为了避免混淆 –

-2

我认为,而不是<property name="basenames">它应该是<property name="basename">

+1

没关系。 'setBasename()'接受一个'String','setBasenames()'接受一个'String'数组。 – Roman