Итерация по HasMap в порядке вставки в <logic: iterate> - PullRequest
2 голосов
/ 14 марта 2012

У меня есть объект HasMap, подобный этому:

HashMap<String,String> fileCounter = new HashMap<String,String>();

fileCounter.put("Total Files","15");
fileCounter.put("Total Success Files","10");
fileCounter.put("Total Failed Files","2");
fileCounter.put("Total In Process Files","4");
fileCounter.put("Total Records","100");
fileCounter.put("Total Success Records","80");
fileCounter.put("Total Failed Records","10");
fileCounter.put("Total In Process Records","10");

моя логика итератора такова:

<logic:iterate id="mapEntry" name="fileCounter">
  <tr>
    <td><bean:write name="mapEntry" property="key"></td>
    <td><bean:write name="mapEntry" property="value"></td>
  </tr>
</logic:iterate>

Проблема:

когда я выполняю итерацию, значения карты и ключи перемешиваются, поэтому все иматы не печатаются, как указано в коде Java.

Может ли кто-нибудь помочь мне, Как напечатать эту карту в том виде, в каком она есть в данной последовательности.

Я хочу вывод, подобный этому:

Total Files         15
Total Success Files     10
Total Failed Files      2
Total In Process Files  4
Total Records       10
Total Success Records   80
Total Failed Records    10
Total In Process Records    10

1 Ответ

7 голосов
/ 14 марта 2012

Используйте LinkedHashMap вместо обычного HashMap.Итерация выполняется в том порядке, в котором элементы были вставлены.

...