フォームバッキングオブジェクトのSpring検証中に使用されるmessages.propertiesのメッセージを取得できません。
app-config.xml:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages" />
</bean>
WEB-INF / classes / messages.properties:
NotEmpty=This field should not be empty.
フォームバッキングオブジェクト:
...
@NotEmpty
@Size(min=6, max=25)
private String password;
...
BindingResultのすべてのエラーをループして、ObjectErrorのtoStringを出力すると、次のようになります。
Field error in object 'settingsForm' on field 'password': rejected value []; codes [NotEmpty.settingsForm.password,NotEmpty.password,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [settingsForm.password,password]; arguments []; default message [password]]; default message [may not be empty]
ご覧のとおり、デフォルトのメッセージは、「このフィールドは空であってはなりません」というメッセージではなく、「空ではない可能性があります」です。
messageSourceをコントローラーに挿入して出力すると、正しいメッセージが表示されます。messageSource.getMessage( "NotEmpty"、new Object [] {"password"}、 "default empty message"、null);
では、messages.propertiesを使用した検証が行われないのはなぜですか?Spring3.1.1を実行しています。ありがとう!