使用 Struts 2 迭代 HashMap<String、ArrayList<String>>

2022-09-02 01:29:24

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

我想显示一个标签,它是HashMap中的键,后跟一个表(HashMap中的值),其中包含HashMap中每个元素的ArrayList中的每个元素。

例如

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



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

我看到了很多HashMap的例子,但没有找到一个适合我的情况。

我该怎么做?

谢谢


答案 1
<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()。循环访问 Entry 打印密钥,然后循环访问打印值的值。(列表项放在值堆栈的顶部,因此 s:属性只打印顶部。


答案 2
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>