Проверка аннотации SpringMVC — тип данных DataBinding

При использовании пользовательской проверки в этом сценарии:

if(officer.getBadgeId() == 0){

        errors.rejectValue("badgeId", "badgeId.required");
}

если сотрудник POJO/Model имеет тип данных int для badgeId, можно ли установить строку в качестве сообщения об ошибке для атрибута? Или тип данных атрибута не имеет значения при проверке и возврате сообщений об ошибках в представление.

Если это проблема, как вы обрабатываете этот сценарий с точки зрения или возвращаете сообщение об ошибке пользователю из пользовательской проверки


person devdar    schedule 02.09.2012    source источник


Ответы (2)


Сообщение об ошибке будет только типа String.

void rejectValue(String field, String errorCode, String defaultMessage)
Отклонить данное поле текущего объекта, используя данное описание ошибки.

Ссылка на документ Spring.

person Ajinkya    schedule 02.09.2012
comment
Вы имеете в виду rejectValue(String field, String errorCode) я думаю - person ; 02.09.2012
comment
@Ajinkya да, мне было интересно, что errorCode имеет тип String, повлияло бы это каким-то образом на тип атрибута класса типа int и выдало бы ошибку - person devdar; 02.09.2012
comment
@dev_darin: сообщение об ошибке будет иметь тип String независимо от типа поля, к которому оно принадлежит. - person Ajinkya; 02.09.2012

Это пример из: http://alasdoo.com/2011/07/data-validation-conversion-basics-custom-error-messages-in-spring-mvc/

if (user.getBirthYear()!=null)
            if ( user.getBirthYear() <MINI_YEAR || user.getBirthYear() >MAX_YEAR)
                e.rejectValue( "birthYear", "user.birthYear.outOfInterval");
    }

Здесь вы можете видеть, что BirthdayYear, будучи типом даты, возвращает сообщение об ошибке типа String, хранящееся в файле message.properties.

person devdar    schedule 02.09.2012