春の検証エラーをカスタマイズしたい
@NotNull
@Length(max = 80)
private String email;
しかし、私はそれを行うことができません。次のステップは何ですか?
JSR 303のデフォルトのメッセージ補間アルゴリズム を使用すると、ValidationMessagesという名前のリソースバンドルを指定してメッセージをカスタマイズできます。以下を含むクラスパスにValidationMessages.properties
ファイルを作成します。
javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE
これにより、@Size
制約のデフォルトメッセージが変更されるため、Hibernate固有の@Size
制約の代わりに@Length
制約を使用する必要があります。
すべての制約のデフォルトメッセージを変更する代わりに、特定の制約インスタンスのメッセージを変更できます。制約にmessage
属性を設定します。
@NotNull(message = "{email.notnull}")
private String email;
そして、メッセージをValidationMessages.properties
ファイルに追加します。
email.notnull=E-mail address is required
春までに、私はあなたが春のMVCを意味すると想定しています。
以下のリファレンスから http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html
どうぞ -
あなたはバリデータークラスを作成します-
public class UserValidator implements Validator {
public boolean supports(Class candidate) {
return User.class.isAssignableFrom(candidate);
}
public void validate(Object obj, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "required", "Field is required.");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "required", "Field is required.");
}
}
上記のフィールドに必要な検証テキストを入力します。
JSPでは、次のタグが必要です-
<tr>
<td>First Name:</td>
<td><form:input path="firstName" /></td>
<!-- Show errors for firstName field -->
<td><form:errors path="firstName" /></td>
</tr>
このようにして、firstName
の検証エラーが出力されます。