我目前在Struts2和s:iterate标签方面遇到了一些困难。
我希望显示一个标签,它是HashMap中的关键字,后面是一个表(HashMap中的值),包含了ArrayList中每个元素,用于HashMap中的每个元素。
例如,
label
----------
| test1 |
----------
| test2 |
----------
label2
----------
| test1 |
----------
| test2 |
----------
我看到了很多关于HashMap的例子,但没有为我的案例找到一个。
我该怎么做?
谢谢,
答案 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>