1

私のWebアプリケーションでは、アノテーションでエラーを処理します。すべてうまく動作し、私は "メッセージ"パラメータを介してカスタムメッセージを使用することができます。Spring MVCカスタムエラーと国際化

@Digits(fraction = 0, integer = 3, message="my custom error message...") 
private String price; 

今、私は.propertiesファイルのファイルで、このメッセージを国際化しようとしているが、私は確かに何かを欠場し、私はそれを動作させることはできません。

私の春の設定:

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <beans:property name="basenames" value="classpath:i18n/messages, classpath:i18n/errors" /> 
    <beans:property name="defaultEncoding" value="UTF-8" /> 
</beans:bean> 

<beans:bean name="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> 
    <beans:property name="validationMessageSource"> 
     <beans:ref bean="messageSource" /> 
    </beans:property> 
</beans:bean> 

<beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver"> 
    <beans:property name="defaultLocale" value="fr" /> 
</beans:bean> 

私の新しいbean:

@Digits(fraction = 0, integer = 3) 
private String price; 

マイ "errors_fr.properties" ファイル。

Digits.myBean.myNestedBean.price = my custom error message... 
Digits.myNestedBean.price = my custom error message... 
javax.validation.constraints.Digits.myNestedBean.price = my custom error message... 

私はいつも春から同じ一般的なメッセージを取得し、それは春は私の.propertiesファイルを検出しないようようなものだ:私はすでにすべてを試みました。ところで、上記のメッセージキーはデバッグ時にBindingResultオブジェクトにあります。

私はここで何が欠けていますか?

私はすでに自分のjsp( "messages_fr.properties"ファイル内)に国際化対応のメッセージがあり、正常に動作することに注意してください。

答えて

5

私のアプリケーションでも同様の問題がありましたが、これが役立つことを願っています。このスレッドで述べたように

http://forum.springsource.org/showthread.php?73240-Roo-JSR-303-Validations-and-Localizationは、以下を行う必要があります。

  1. で囲まれたエラーメッセージキーを参照してください、あなたの注釈内のファイルValidationMessages.properties
  2. に注釈が参照するエラーメッセージを定義します中括弧:

@Digits(fraction = 0, integer = 3, message="{message.key}")

は、この情報がお役に立てば幸いです。

+0

はい、あなたは絶対に正しいです! ValidatorMessages.propertiesをクラスパスに配置しようとしましたが、うまくいきませんでした。あなたのリンクを読んだ後、私はなぜそれをValidatorMessages_fr.propertiesと呼んだのですか?それを "ValidatorMessages_fr_FR.properties"と名づけなければなりません。ほんとありがと !しかし、あなたの答えを確認する前に、私が知りたかったのは、 "ValidatorMessages_fr_FR.properties"の代わりに "errors_fr.properties"というファイルを呼び出す方法がありますか? –

+0

私はこれを試していないが、スレッドhttp://forum.springsource.org/showthread.php?86237-JSR-303-Validation-Spring-MVC-and-messages-propertiesの最後のコメントのように思える。メッセージをファイルmessages.propertiesに保持する。これがあなたのために働くかどうか教えてください。私もそれを試してみましょう。 :) – vincentks

+0

はい、それはうまくいくようです!しかし、xml構成だけを使用するといいです(私はなぜ私の初期設定がうまくいかないのか分かりません)。しかしこれは別の問題です。ありがとう! –