web-dev-qa-db-ja.com

春の検証エラーをカスタマイズする

春の検証エラーをカスタマイズしたい

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

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

30

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
58
Chin Huang

春までに、私はあなたが春の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の検証エラーが出力されます。

0
Pushkar