【发布时间】:2016-01-14 18:51:40
【问题描述】:
我有以下格式的数据。
Map<String, Map<String,List<String>>>
示例 - {ProfileAdaptarRepository={active=[true,false,true,true]}}}
我确实在下面的脚本中的mymap 中设置了页面上下文,它工作得非常好。
<% pageContext.setAttribute("mymap",example);%>
我需要以下 html 表格格式的数据:
上图的示例 HTML 源代码。
<html>
<body>
<table border="1">
<tr>
<th>Component</th>
<th>Properties</th>
<th>J01</th>
<th>J02</th>
<th>W01</th>
<th>W02</th>
</tr>
<tr>
<td>StoreConfiguration</td>
<td>active</td>
<td>true</td>
<td>false</td>
<td>true</td>
<td>false</td>
</tr>
<tr>
<td>DynamoConfiguration</td>
<td>enabled</td>
<td>true</td>
<td>false</td>
<td>true</td>
<td>false</td>
</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>
有人可以帮助或指导我实现所需的表格格式吗?
非常感谢提前..:)
【问题讨论】:
-
使用真正嵌套的集合(Map
>>)通常被认为是不好的做法。将来在代码上工作的其他任何人都无法阅读。哎呀,六个月后当你回到这段代码时,你可能不记得它做了什么。我强烈建议您将数据结构更改为实际的类(即使它与 Row 和 Column 一样通用)。这也将帮助您遍历您的 forEach 列表。 -
@Allen,非常感谢您的意见。我同意你的看法,这是糟糕的代码。它实际上不是一个不变的网页,所以我最终弄得一团糟,这应该足以处理 Java 源代码。我不能回去改回 java 源代码,因为我花了很多时间来格式化这张地图。因此,如果您将解决方案传递给我,那将有很大帮助。我对 java Web 编程比较陌生...:) 谢谢..
-
@harshavmb 您将花费更多时间尝试输出它或尝试在将来进行更改,例如排序。因此,如果您使用普通 DTO 对象列表会更好。每个表格行一个对象。
标签: java html jsp jstl html-table