2017-02-22 43 views
0

に私たちは、リストの特定のインデックス付きの要素をJSPのフィールドを結合するとSpringMVC:インスタンス化できませんでしたプロパティタイプ[java.lang.Doubleの]自動拡張ネストされたプロパティパス

MyObject 
|--List<Double> tuition; 

にマップする入力フィールドを持っています、例えば

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クラスには引数なしのコンストラクタがありません。そのため、失敗しています。非常に驚いたことに、それはより広く知られている、または議論された問題ではありません。デフォルトの引数なしコンストラクタをサポートしないDoubleやIntegerなどのクラスのリストにどうやってバインドしますか?私たちの唯一の解決策は、List<String>(Stringsは引数なしの構造をサポート)にバインドしてからList<Double>にコピーすることです。これは変です。

答えて

0

あなたは少しあなたのモデルを変更して[OK]をしている場合、あなたはTuitionクラスに授業料をラップすることができます:

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

、その後MyObjectへの変更:JSPへ

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

変更:

path="tuitions[0].value" 
path="tuitions[1].value" 
関連する問題