我正在尝试将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
命令对象是这样的:
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>
我想我还应该提到地图是动态的,所以我不知道有多少条目或Map的列表大小。当我向地图添加新条目时会出现问题。
我知道这与在Map中初始化List有关,但这不是为什么建议使用AutoPopulatingList所以不应该有任何与初始化相关的问题?
这可以与Spring Framework绑定吗?
答案 0 :(得分:1)
我只是通过在地图对象中预先填充地图和数组来解决问题。 所以要创建它,请使用
@ModelAttribute(FORM_PRECRUISE_SHOPPING)
@Valid
PrecruisePlannerShoppingForm form