在Spring MVC中绑定地图


问题内容

我在Spring MVC 2中有一个表格,其命令类为“ Class1”

我想用这种形式的输入字段来绑定Class3元素。以下是我的课程。

我正在迭代/绑定JSP中的Class2元素,而不是像这样的映射

<c:forEach var="item" items="${class1.class2List}" varStatus="itemsRow">  
    <form:input path="class2List[${itemsRow.index}].anyElement2" />
    ..........
</c:forEach>

我的班级看起来像

Class1
List<Class2> class2List;
String anyElement1;

Class2
Map<String, Class3> class2Map;
String anyElement2;

Class3
Map<String, Class3> class3Map;
String nameToGet;
String anyElement3;

我该如何绑定anyElement3里面class3Map。可能吗?

编辑第一个答案

Caused by: org.springframework.beans.NullValueInNestedPathException: Invalid property 'class2List[0].class2Map[0]' of bean class [com.Class1]: Could not instantiate property type [com.Class3] to auto-grow nested property path: java.lang.InstantiationException: com.Class3
    at org.springframework.beans.BeanWrapperImpl.newValue(BeanWrapperImpl.java:641)

问题答案:

假设您class2Map有一个带有密钥的条目,例如mapkey,请尝试以下操作:

<form:input path="class2List[${itemsRow.index}].class2Map['mapkey'].anyElement3" />