У меня есть данные в следующем формате.Вывод карты <String, Map <String, List <String> >> в jsp с помощью jstl
Map<String, Map<String,List<String>>>
пример - {ProfileAdaptarRepository={active=[true,false,true,true]}}}
я установить контекст страницы в mymap
в ниже скриптлетах и работает абсолютно нормально.
<% pageContext.setAttribute("mymap",example);%>
мне нужны данные в формате HTML ниже таблицы:
Пример исходного HTML код на картинке выше.
<html>
<body>
<table border="1">
\t \t <tr>
\t \t \t <th>Component</th>
\t \t \t <th>Properties</th>
\t \t \t <th>J01</th>
\t \t \t <th>J02</th>
\t \t \t <th>W01</th>
\t \t \t <th>W02</th>
\t \t </tr>
\t \t <tr>
\t \t \t <td>StoreConfiguration</td>
\t \t \t <td>active</td>
\t \t \t <td>true</td>
\t \t \t <td>false</td>
\t \t \t <td>true</td>
\t \t \t <td>false</td>
\t \t </tr>
\t \t
\t \t <tr>
\t \t \t <td>DynamoConfiguration</td>
\t \t \t <td>enabled</td>
\t \t \t <td>true</td>
\t \t \t <td>false</td>
\t \t \t <td>true</td>
\t \t \t <td>false</td>
\t \t </tr>
</table>
</body>
</html>
Я попытался представить вышеуказанные данные в веб-страницы, используя приведенную ниже jstl
код, но он не работает для множества значений компонентов (более 1 компоненты)
<c:forEach var = "comp" items="${mymap}">
<tr>
<td>${comp.key}</td>
<c:forEach var="prop" items="${comp.value}">
<td>${prop.key}</td>
<c:forEach var="val" items="${prop.value}">
<td>${val}</td>
</c:forEach>
</c:forEach>
</tr>
</c:forEach>
Может ли кто-нибудь помочь или помочь мне в достижении желаемого табличного формата?
Большое спасибо заранее .. :)
Обычно считается неправильной практикой использования действительно вложенных коллекций (Карта >>). Это не будет доступно для всех, кто работает над кодом в будущем. Черт, через шесть месяцев, когда вы вернетесь к этому коду, вы можете не помнить, что он делает. Я настоятельно рекомендую изменить структуру данных на фактические классы (даже если она такая же общая, как строка и столбец). Это поможет вам выполнить итерацию в ваших списках forEach. –
@ Allen, Большое спасибо за ваши взгляды. Я согласен с тобой, это плохой код. На самом деле это не веб-страница, которая не меняется, поэтому я оказался в этом беспорядке, и этого должно быть достаточно, чтобы иметь дело с исходным кодом Java. Я не могу вернуться и изменить исходный код java, поскольку я потратил много времени на форматирование этой карты. Таким образом, было бы очень полезно, если вы передадите мне решение. Я относительно новичок в Java-программировании ... :) спасибо .. – harshavmb
@harshavmb. Вы потратите гораздо больше времени, пытаясь вывести его или попытаться внести изменения в будущем, например, для сортировки. Итак, будет лучше, если вы используете список простых объектов DTO. Один объект в строке таблицы. –