2010-11-25 16 views
3

プロパティ・ファイルのエラー・メッセージを使用してスプリング検証を実行しようとしています。 しかし、私が見つけたすべての例では、値がハードコードされているか、プロパティファイルから取得されていますが、バリデータークラスを使用してその値を取得しているようです。スプリング検証と@validカスタム・エラー・メッセージ

設定が少し異なります。 私はリクエストマッピングで@Validアノテーションを使用しています。@Validクラスは@NotNullなどを使用しています。 @NotNull(message = "blablabla")の例をいくつか見てきました。 これもハードコードされています。そのメッセージをプロパティファイルに入れて、簡単に編集できるようにして、今後i18nを簡単に実装できます。

これを達成する方法についてのご意見をいただければ幸いです。

答えて

8

明示的にValidator - declare a MessageSourceと同じ方法で動作し、.propertiesファイルにエラーメッセージを書き込みます。メッセージコードはconstraintName.modelAttributeName.propertyNameとして形成されている:

publib class Foo { 
    @NotNull private String name; 
    ... 
} 

@RequestMapping 
public String submitFoo(@Valid Foo foo, ...) { ... } 

messages.properties

NotNull.foo.name=... 

MessageSource宣言:

<bean id="messageSource" 
    class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basename" value = "messages" /> 
</bean> 
関連する問題