如何迭代一个带有值的hashmap作为给定索引的arraylist

时间:2016-04-27 09:33:38

标签: java jsp jstl

我有一个hashmap savedQuestionAnswer,其中Integer为键,ArrayList为以下代码中的值

<c:set var="form" value="${surveyQuestionnaire}"/>
    <c:forEach var="questionName" items="${form.questionsList }"  varStatus="theCount">
 Q.<c:out value="${questionName}"></c:out>
<c:forEach items="${savedQuestionAnswer[(theCount.count).longValue()]}" var="choice" varStatus="choiceStatus">
       <br/> ${choiceStatus.count})${choice} 
     </c:forEach> <br/>
</c:forEach>

我正在尝试打印一份包含多个答案的调查问卷。因此,对于每个问题(在questionName中出现),我已在哈希映射savedQuestionAnswer中保存了具有相应索引值的答案列表。

我收到语法错误,

  

“当未指定默认命名空间时,函数longValue必须与前缀一起使用”。

无法获得正确的语法或完成方法

1 个答案:

答案 0 :(得分:0)

LoopTagStatus.getCount()返回int。你为什么需要:

${savedQuestionAnswer[(theCount.count).longValue()]}

尝试简单

${savedQuestionAnswer[theCount.count]}

另请注意

  • LoopTagStatus.getCount()从1
  • 开始计数
  • LoopTagStatus.getIndex()从0
  • 开始计数

因此,根据您填充HashMap的方式,您应该使用

  

theCount.index

  

theCount.count

作为关键。