Ответ 1
Отметьте, об этом уже ответили в предыдущем разделе. Но ОК, здесь это снова:
Предположим, что ${list}
указывает на a 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
здесь не специальные методы или так. Это на самом деле методы getter Map.Entry
object (нажмите на синюю ссылку Map.Entry
, чтобы увидеть документ API). В EL (язык выражений) вы можете использовать оператор .
dot для доступа к методам getter с использованием имени свойства (имя метода getter без префикса get
), все только по спецификации Javabean.
Тем не менее, вам действительно нужно очистить "ответы" в предыдущей теме, поскольку они добавляют шум к вопросу. Также прочитайте комментарии, которые я разместил в ваших "ответах".