Re[2]: spring, валидация поля (Integer)
От: serjik rogmkk.narod.ru
Дата: 07.02.07 19:06
Оценка:
Сделал чтобы валидация нормально реагировала на ввод числового значения и показывало сообщение, когда в вводимом значении присутствуют символы. Но это поле необязательное для заполнения, и если ничего невводить, то выкидывает такую ошибку:
Failed to convert property value of type [java.lang.String] to required type [java.lang.Integer] for property bankCode; nested exception is java.lang.NumberFormatException: For input string: ""
Парни, подскажите плиз, как привально доделать
Класс валидации:

public class DepartmentValidator implements Validator {
    public boolean supports(Class clazz) {
        return Department.class.isAssignableFrom(clazz);
    }
    public void validate(Object obj, Errors error) {
        Department department = (Department) obj;
        ValidationUtils.rejectIfEmptyOrWhitespace(error, "departmentName", "required","заполните поле");
        Integer bankCode = department.getBankCode();
        if(bankCode == null){
            error.rejectValue("bankCode", "nonNumeric", "вводите только числовые значения");                
        }    
    }
}


MyIntegerEditor

public class MyIntegerEditor extends PropertyEditorSupport {    
        public void setAsText(String text) throws IllegalArgumentException {
            if (StringUtils.isNumeric(text)==false) {
                setValue(null);
            }else{
                setValue(new Integer(text));
            }
        }
        public String getAsText() {
            Object value = getValue();
            if (value != null) {
                return value.toString();

            } else {
                return "";
            }
        }    
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.