0
Я новичок, и с помощью Spring 3.Spring 3 связывание с примитивным типом данных
Я следующий фасолью
public class Record {
private String title;
private double amount;
//Getter and Setter
}
public class RecordBean {
private List<Record> records;
public RecordBean() {
this.records = LazyList.lazyList(new ArrayList<Record>(), new InstantiateFactory<Record>(Record.class));
}
//Getter and Setter
}
я добавил RecordBean
к model
modelMap.add('recordBean',new RecordBean());
Ниже приводится Весна Форма
<form:form action="/save" method="POST" commandName="recordBean">
<form:input path="records[0].title"/>
<form:input path="records[0].amount"/>
<form:input path="records[1].title"/>
<form:input path="records[1].amount"/>
<input type="submit" value="Save"/>
</form:form>
Я также добавил InitBinder
контролеру
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Double.class, new CustomNumberEditor(Double.class, true));
}
Теперь, если я введите значение для amount[0]
и оставьте пустым для amount[1]
и отправить форму, я получаю сообщение об ошибке typeMismatch
.
Field error in object 'recordBean' on field 'records[1].amount': rejected value []; codes [typeMismatch.recordBean.records[1].amount,typeMismatch.recordBean.records.amount,typeMismatch.records[1].amount,typeMismatch.records.amount,typeMismatch.amount,typeMismatch.double,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [recordBean.records[1].amount,records[1].amount]; arguments []; default message [records[1].amount]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'double' for property 'records[1].amount'; nested exception is java.lang.NumberFormatException: empty String]
Просьба сообщить.
Благодаря
Да я подозреваю, что 'CustomNumberEditor' не вступают в силу - потому что он зарегистрирован против wrapper type 'Double ', но Spring пытается привязать к примитивному типу' double '. –
Что делать, если я хочу связать его только с примитивным типом, а не с классом-оболочкой? –
Эта работа работает, но я хочу использовать примитивный тип данных. Пожалуйста, направляйте. –