如何解决IllegalArgumentException:未对属性编制索引

时间:2015-10-05 17:14:31

标签: java jsp exception struct properties

我在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

有人会帮我解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:1)

地图未订购,因此sequenceNumbersMap[i]没有任何意义。如果您的意思是将值映射到i而不是获取地图中的i项(再次没有意义),则可以使用sequenceNumbersMap.get(i)来完成。

答案 1 :(得分:0)

您必须以不同方式迭代地图:How to loop through a HashMap in JSP?

或者对序列号使用不同类型的数据结构(索引,因为它在异常中指出,例如java.util.List)。