私は現在、Struts2とs:iterateタグでいくつかの問題に直面しています。
HashMapの各要素について、HashMapのキーであるラベルと、それに続くArrayListのすべての要素を含むテーブル(HashMapの値)を表示したいと思います。
例えば、
label
----------
| test1 |
----------
| test2 |
----------
label2
----------
| test1 |
----------
| test2 |
----------
HashMapの例をたくさん見ましたが、私の場合は見つかりませんでした。
これどうやってするの ?
おかげで、
<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()という2つのアクセサがあります。キーを出力するエントリを反復処理し、次に値を出力する値を反復処理します。 (リスト項目は値スタックの一番上に置かれるため、s:propertyは単に一番上に出力します。)
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>