2017-02-22 21 views
0

У нас есть поле ввода, который отображаетсяSpringMVC: Не удалось создать экземпляр типа недвижимости [java.lang.Double], чтобы путь автоматического увеличения вложенной собственности

MyObject 
|--List<Double> tuition; 

После связывания поля JSP конкретные индексированные элементов списка , например

path="myobject.tuition[0]" 
path="myobject.tuition[1]" 

мы получаем эту ошибку:

Could not instantiate property type [java.lang.Double] to auto-grow nested property path: java.lang.InstantiationException: java.lang.Double 

Но я думал, что все списки были автоматически расширяемым в SpringMVC? Может кто-нибудь уточнить?

UPDATE Класс Java Double не имеет конструктора no-arg, поэтому он не работает. Очень удивлен, что это не более широко известный или обсуждаемый вопрос. Как вы привязываетесь к спискам классов типа Double или Integer, которые не поддерживают конструкторы no-arg по умолчанию? Наше единственное решение прямо сейчас - связать с List<String> (Строки поддерживают конструкцию no-arg), а затем скопировать на List<Double>, что странно.

ответ

0

Если вы хорошо с немного изменив модель, вы можете обернуть обучение в Tuition класс:

public class Tuition { 
    private Double value; 
    /* getters, setters */ 
} 

, а затем изменить MyObject к:

public class MyObject { 
    /* ... */ 
    private List<Tuition> tuitions; 
    /* ... */ 
} 

Изменения в JSP:

path="tuitions[0].value" 
path="tuitions[1].value" 

 Смежные вопросы

  • Нет связанных вопросов^_^