我在jsp中有一个属性,如下所示
<html:text property="sequenceNumbersMap[0]" styleId="sequenceNumbersMap[0]" value="0"/>
<html:text property="sequenceNumbersMap[1]" styleId="sequenceNumbersMap[1]" value="1"/>
<html:text property="sequenceNumbersMap[2]" styleId="sequenceNumbersMap[2]" value="2"/>
<html:text property="sequenceNumbersMap[3]" styleId="sequenceNumbersMap[3]" value="3"/>
和ActionForm
具有类似
Map sequenceNumbersMap;
和getter/setter
public Map<Integer, Integer> getSequenceNumbersMap() {
return sequenceNumbersMap;
}
public void setSequenceNumbersMap(Map<Integer, Integer> sequenceNumbersMap) {
this.sequenceNumbersMap = sequenceNumbersMap;
}
但是当我尝试提交jsp时,我得到以下异常:
java.lang.IllegalArgumentException: Property 'sequenceNumbersMap' is not indexed
有人会帮我解决这个问题吗?
由于
答案 0 :(得分:1)
地图未订购,因此sequenceNumbersMap[i]
没有任何意义。如果您的意思是将值映射到i
而不是获取地图中的i
项(再次没有意义),则可以使用sequenceNumbersMap.get(i)
来完成。
答案 1 :(得分:0)
您必须以不同方式迭代地图:How to loop through a HashMap in JSP?
或者对序列号使用不同类型的数据结构(索引,因为它在异常中指出,例如java.util.List)。