jstl карта и список итераторов - PullRequest
0 голосов
/ 13 марта 2012

Следующий код не работает:

    <c:forEach items="${orderNumByDepartment}" var="map2">
        <c:forEach items="${map2.value }" var="foodName2foodNum">

            <tr>
                    <td>${map2.key }</td>
                    <td>${foodName2foodNum.key }</td>
                    <td>${foodName2foodNum.value }</td>
            </tr>

        </c:forEach>
    </c:forEach>

orderNumByDepartment is Map<String, List<Map<String, Integer>>> type.

Можете ли вы сказать мне, почему я не могу получить второе и третье значение (foodName2foodNum.key / foodName2foodNum.value)

Ответы [ 2 ]

1 голос
/ 13 марта 2012

foodName2foodNum - это целая карта, а не одна запись карты, поэтому не имеет ключа и значения. Если вам нужны ключи String и значения Integer из записей Map, попробуйте создать еще один цикл c: forEach внутри цикла map2.value. Например.

<c:forEach items="${foodName2foodNum}" var="thirdLoopVar">
  <p>${thirdLoopVar.key}</p>
  <p>${thirdLoopVar.value}</p>
</c:forEach>
1 голос
/ 13 марта 2012

Я думаю, Map<String, List<Map<String, Integer>>> должно быть Map<String, Map<String, Integer>>, потому что вы хотите, чтобы foodName2foodNum была картой, а не списком карт, и тогда map2 имеет тип Map.Entry<String, Map<String, Integer>>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...