2011-11-03 4 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下messages_en_US.properties

registerForm.passwordNotMatch=Password does not match. 

を持っていますコードがエラーを表示しています:

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

エラー:コード 'registerForm.passwordNotMaでメッセージが見つかりませんでしたロケール 'en_US'の場合は「tch」です。

何が問題なのでしょうか?

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

関連する問題