Настройка ошибки проверки пружины - PullRequest
26 голосов
/ 26 января 2011

Я хочу настроить ошибку проверки пружины для

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

, но я не могу этого сделать.Какому шагу следовать?

Ответы [ 2 ]

55 голосов
/ 27 января 2011

Алгоритм интерполяции сообщений JSR 303 по умолчанию позволяет настраивать сообщения, предоставляя пакет ресурсов с именем ValidationMessages. Создайте ValidationMessages.properties файл в classpath, содержащий:

javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE

Это меняет сообщение по умолчанию для ограничения @Size, поэтому вы должны использовать ограничение @Size вместо ограничения @Length, специфичного для Hibernate.

Вместо изменения сообщения по умолчанию для всех ограничений вы можете изменить сообщение для конкретного экземпляра ограничения. Установите атрибут message в ограничении:

@NotNull(message = "{email.notnull}")
private String email;

И добавить сообщение в файл ValidationMessages.properties:

email.notnull=E-mail address is required
0 голосов
/ 26 января 2011

Под Spring я предполагаю, что вы имеете в виду Spring 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.

...