Я видел несколько вопросов, которые похожи, но мне еще предстоит найти ответ, который решает эту проблему. У меня есть форма Spring MVC, который опирается на объект команды с примитивным свойством:Spring MVC - Связывание значений пустых форм с примитивными полями бобов
public class MyBean {
private int counter;
public int getCounter() {
return counter;
}
public void setCounter(int counter) {
this.counter = counter;
}
}
В форме JSP, я (сокращенно для ясности):
<form:form action="count.do">
<form:input id="counter" path="counter"/>
</form:form>
В настоящее время, до тех пор, есть действительное значение числа в «счетчик» поле ввода, все работает, как ожидалось, но если поле пустым, то я получаю сообщение об ошибке проверки формы:
org.springframework.validation.BeanPropertyBindingResult: 1 errors Field error in object 'MyBean' on field 'counter': rejected value []; codes [methodInvocation.MyBean.counter,methodInvocation.counter,methodInvocation.float,methodInvocation]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [MyBean.counter,counter]; arguments []; default message [counter]]; default message [Property 'counter' threw exception; nested exception is java.lang.IllegalArgumentException]
Я пытался создать пользовательский редактор свойств в принимают нулевые значения (инициализации в initBinder()), но это работает только если я создаю непримитивный набор оберток аксессоров:
binder.registerCustomEditor(Integer.class, new CustomNumberEditor(Integer.class, true));
Итак, есть ли способ, чтобы связать поле на форме примитивный тип без создания непримитивных оболочек и по-прежнему обрабатывать пустые значения (я бы хотел установить их на 0, а не на ошибку)? Если да, не могли бы вы опубликовать простой пример?
Большое спасибо, Peter