SpringMVC:无法实例化属性类型[java.lang.Double]以自动增长嵌套属性路径

时间:2017-02-22 14:55:48

标签: spring spring-mvc

我们有一个映射到

的输入字段
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等类的列表?我们现在唯一的解决方案是绑定到List<String>(字符串支持无参数构造),然后复制到List<Double>,这很奇怪。

1 个答案:

答案 0 :(得分: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"