32

スプリング検証エラーをカスタマイズしたい

    @NotNull
    @Length(max = 80)
    private String email; 

しかし、私はそれをすることができません。従うべきステップは何ですか?

4

2 に答える 2

70

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
于 2011-01-26T23:20:30.233 に答える
0

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が出力されます。

于 2011-01-26T13:55:48.087 に答える