JSF 1.2 - итерация по карте, содержащей коллекции
Использование JSF1.2 а такжеJSP....
Можно ли перебрать карту, значения которой содержат коллекции?
У меня есть карта, которая выглядит так:
Map myMap;
Я хотел бы перебрать myMap и нарисовать отдельную таблицу для каждого ключа.
Каждая таблица будет состоять из нескольких строк.
Каждая строка будет представлять объект Foo из ArrayList, сопоставленного с текущим ключом.
К сожалению, мы используем JSF 1.2 и JSP.
Я надеялся, что смогу использовать вложенный тег, но яЯ не имел никакого успеха.
Редактировать:
Вот мой текущий код JSP после консультации с BalusC 'ответ:
<br><br><p>Key: </p>
Это вызывает следующее исключение:
javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in
Вот код из моего управляемого компонента.
Обратите внимание, что яиспользуя HashMap и ArrayList вместо Map и List
(Я читал где-то вы не моглине использовать интерфейсы, которые также нет работа)
private HashMap prefMap;
public HashMap getPrefMap()
{
if (prefMap == null)
{
buildPrefMap();
}
return prefMap;
}
private void buildPrefMap()
{
prefMap = new HashMap();
for (Foo mdp : getFooArray())
{
String cat = mdp.getField().getCategory();
if (! prefMap.containsKey(cat))
{
ArrayList mpl = new ArrayList();
mpl.add(mdp);
prefMap.put(cat, mpl);
}
else
{
prefMap.get(cat).add(mdp);
}
}
}
private void dumpMapInfo()
{
StringBuilder sb = new StringBuilder();
Map theMap = getPrefMap();
for (String key : theMap.keySet())
{
sb.append(key + ": " + theMap.get(key).size());
}
System.out.println("\n\n" + sb.toString());
}
призваниеdumpMapInfo
перед рендерингом страница подтверждает, что карта не равна нулю и заполнена как положено.