迭代HashMap <string,arraylist <string =“”>&gt;使用Struts 2 </string,>

时间:2011-06-04 14:15:52

标签: java struts2 iterator

我目前在Struts2和s:iterate标签方面遇到了一些困难。

我希望显示一个标签,它是HashMap中的关键字,后面是一个表(HashMap中的值),包含了ArrayList中每个元素,用于HashMap中的每个元素。

例如,

     label
  ----------
  | test1  |
  ----------
  | test2  |
  ----------



    label2
  ----------
  | test1  |
  ----------
  | test2  |
  ----------

我看到了很多关于HashMap的例子,但没有为我的案例找到一个。

我该怎么做?

谢谢,

2 个答案:

答案 0 :(得分:28)

<s:iterator value="map">
  <h3><s:property value="key" /></h3>
  <table>
  <s:iterator value="value">
    <tr><td><s:property /></td></tr>
  </s:iterator>
  </table>
</s:iterator>

映射的迭代器是Map.Entry,它放在值堆栈上,有两个访问器,getKey()和getValue()。迭代条目打印键,然后迭代打印值的值。 (列表项放在值堆栈的顶部,因此s:property只打印顶部。)

答案 1 :(得分:0)

Map<String,List<String>> mapVo=new  HashMap<String,List<String>>();
<s:iterator value="mapVo"  var="mapList" status="status">
 <table>
    <s:property value="#status.index"></s:property>
   <s:property value="key"></s:property>
   <s:iterator  value="mapList" var="item" status="rowstatus">
     <tr>
       item
     </tr>
   </s:iterator>
 </table>
</s:iterator>