0
春季结合地图
我试图绑定Map<String, org.springframework.util.AutoPopulatingList<B>>
与Spring Framework和我得到以下异常:其中包含列表
ERROR [jsp:165] org.springframework.beans.NullValueInNestedPathException: Invalid property 'command.map[key][0]' of bean class
troller.form.CommandForm]: Cannot access indexed value in property referenced in indexed property path 'map[key][0]': returned null
Command对象是这样的:
public class Command {
private Map<String, AutoPopulatingList<B>> map;
//getters and setters for map
}
和B类是像
Public class B {
private String name;
private String age;
}
和JSP代码是这样的
<c:forEach var="entry" items="${command.map}">
<c:forEach var="b" items="${entry.value}">
<form:hidden path="command.map[${entry.key}][${status.index}]" />
<c:out value="${b.name}" />
</c:forEach>
</c:forEach>
我想我还应该提到,地图是动态的,所以我不知道有多少条目或哪些大小的地图的列表将是。当我将新条目添加到地图时发生问题。
我知道这与初始化List在Map中有关,但这不是为什么建议使用AutoPopulateList,所以不应该有任何初始化相关的问题?
这可以绑定到Spring框架吗?
您确定您可以使用EL像这样处理地图吗?它似乎是你试图访问矩阵字段。我只是猜测,也许你需要一些额外的括号:(command.map [$ {entry.key}])[$ {status.index}]? – Less
我很确定地图可以像EL一样使用。即使生成的HTML显示正确的输入元素,如果我从数据库填充地图,我可以添加更多的B对象到现有的列表。 假设我有内容[key1 [b1,b2,b3]]的地图,我想添加它[key2 [b3,b4]],那么我得到NullValueInNestedPathException – Timii