スプリング検証エラーをカスタマイズしたい
@NotNull
@Length(max = 80)
private String email;
しかし、私はそれをすることができません。従うべきステップは何ですか?
スプリング検証エラーをカスタマイズしたい
@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
これにより、制約のデフォルト メッセージが変更されるため、Hibernate 固有の制約の代わりに制約@Size
を使用する必要があります。@Size
@Length
すべての制約のデフォルト メッセージを変更する代わりに、特定の制約インスタンスのメッセージを変更できます。message
制約に属性を設定します。
@NotNull(message = "{email.notnull}")
private String email;
そして、メッセージをValidationMessages.properties
ファイルに追加します。
email.notnull=E-mail address is required
Springとは、SpringMVCを意味すると思います。
以下のリファレンスから 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
が出力されます。