spring mvc 2 にフォームがあります。私のコマンド クラスには、バインドする必要がある複雑なマップが含まれています。
Map<String, Map<String, Class3>> class2Map;
JSP では、コマンド クラスを繰り返し処理し<c:out>
、Class3 の値、つまり nameToGet & anyElement3 をマップできます。しかし、それをフォームにバインドしようとすると
私は使っている
<c:forEach items="${class1.class2List}" var="item" varStatus="itemRow">
<c:forEach var="map" items="${item.class2Map}" varStatus="mapRow">
<c:forEach var="innerMap" items="${map.value}" varStatus="innerMapRow">
繰り返しのために。私は次のように拘束しています
<form:input path="class2List[${itemsRow.index}].class2Map[${mapRow.index}].value[0].anyElement3" />
次のような例外をスローします
org.springframework.beans.NotReadablePropertyException: Invalid property 'class1[0].class2Map[0].value[0].anyElement3' of bean class [Class1]: Bean property 'class1[0].class2Map[0].value[0].anyElement3' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
私のクラスは次のようになります
Class1 (Command Class)
List<Class2> class2List;
String anyElement1;
Class2
Map<String, Map<String, Class3>> class2Map;
String anyElement2;
Class3
Map<String, Class3> class3Map;
String nameToGet;
String anyElement3;
コマンドクラスの他のデータメンバーを正常にバインドしています。このマップを Spring Form にバインドするにはどうすればよいですか?