在春天mvc绑定地图

时间:2012-03-30 12:53:29

标签: java forms 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)

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

org.springframework.beans.NullValueInNestedPathException:无效的属性'prsCDData [Forced] [0]'

如上所述,你如何在任何对象中拥有属性'prsCDData [Forced] [0]'? 。我认为你的路径值是错误的。