Сделал чтобы валидация нормально реагировала на ввод числового значения и показывало сообщение, когда в вводимом значении присутствуют символы. Но это поле необязательное для заполнения, и если ничего невводить, то выкидывает такую ошибку:
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 "";
}
}
}