Итерация по HashMap <String, ArrayList <String>> с Struts 2 - PullRequest
20 голосов
/ 04 июня 2011

В настоящее время я сталкиваюсь с некоторыми трудностями с Struts2 и тегом s: iterate.

Я хочу отобразить метку, которая является ключом в HashMap, за которой следует таблица (значение в HashMap)содержащий все элементы в ArrayList, для каждого элемента в HashMap.

Например,

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



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

Я видел много примеров для HashMap, но не нашел ни одного для моего случая.

Как я могу это сделать?

Спасибо,

Ответы [ 2 ]

28 голосов
/ 11 июля 2011
<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: property просто печатает верх.)

0 голосов
/ 24 октября 2018
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>
...