在spring mvc中绑定地图
Posted
技术标签:
【中文标题】在spring mvc中绑定地图【英文标题】:Bind Map in spring mvc 【发布时间】:2012-03-30 12:53:29 【问题描述】:我在 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)
【问题讨论】:
如何在 DAO 中设置 class2List 并将其映射回对象?问是因为我有一些问题 我的 DAO 和 class2List 是不同的类。我从 JSP 中填充 class2List 对象,然后使用这些值设置 DAO 对象的值。 你可能在你的 DAO 中使用过 ResultSetExtractor 你能帮我看看这个问题并发布一个例如你如何使用 ResultSetExtractor ***.com/questions/15555163/… 对不起,我没有使用 ResultSetExtractor 您能告诉我您是如何在 DAO 中将行映射到您班级中的列表项的吗? 【参考方案1】:假设您的class2Map
有一个带有密钥的条目,例如mapkey
,试试这个:
<form:input path="class2List[$itemsRow.index].class2Map['mapkey'].anyElement3" />
【讨论】:
什么异常?我已经这样做了一段时间了,没有任何问题。 @imrantariq 我错过了anyElement3
部分。现在编辑我的答案。
问题已修改。如何在 class3Map 中绑定 anyElement3。即 Class3 也包含 HashMap
使用类似的方法即可。使用class2List[$itemsRow.index].class2Map['key1'].class3Map['key2'].anyElement3
。
我认为你错过了单引号。确保完全按照我的说明使用它。 class2Map['key']
.【参考方案2】:
org.springframework.beans.NullValueInNestedPathException: 无效属性 'prsCDData[Forced][0]'
与上述异常一样,您如何在任何对象中拥有属性“prsCDData[Forced][0]”? .我认为你的路径值是错误的。
【讨论】:
以上是关于在spring mvc中绑定地图的主要内容,如果未能解决你的问题,请参考以下文章