Отметьте, это уже дано в вашей предыдущей теме . Но хорошо, вот оно снова:
Предположим, ${list}
указывает на List<Object>
, затем следующие
<c:forEach items="${list}" var="item">
${item}<br>
</c:forEach>
делает то же самое, что и в «обычной Java»:
for (Object item : list) {
System.out.println(item);
}
Если вместо этого у вас есть List<Map<K, V>>
, то следующее
<c:forEach items="${list}" var="map">
<c:forEach items="${map}" var="entry">
${entry.key}<br>
${entry.value}<br>
</c:forEach>
</c:forEach>
делает то же самое, что и в «обычной Java»:
for (Map<K, V> map : list) {
for (Entry<K, V> entry : map.entrySet()) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
key
и value
здесь не являются специальными методами или около того. Это на самом деле методы получения объекта Map.Entry
(нажмите на синюю ссылку Map.Entry
, чтобы увидеть документ API). В EL (язык выражений) вы можете использовать оператор точки .
для доступа к методам получения, используя «имя свойства» (имя метода получения без префикса get
), все в соответствии со спецификацией Javabean.
Тем не менее, вам действительно нужно очистить "ответы" в предыдущей теме, поскольку они добавляют шум к вопросу. Также прочитайте комментарии, которые я разместил в ваших «ответах».