我有一个以下面的方式创建的HashMap,
HashMap products = new HashMap<String, String[]>();
products.put("001",new String[] {"SAM", "100"});
现在我需要在表格中打印Map的内容,如果是在嵌套数组中创建的话,我知道如何打印它,如下面的代码片段所示。
<%
for (Map.Entry<String, String> entry : orderList.entrySet()) {
%>
<tr>
<td><%=counter++%></td>
<td><%=entry.getKey()%></td>
<td><%=entry.getValue()%></td>
</tr>
如何使用嵌套数组打印HashMap中的内容?
我试过的解决方案,
<%
for (Map.Entry<String, String[]> entry : Order.entrySet()) {
%>
<tr>
<td><%=counter++%></td>
<td><%=entry.getKey()%></td>
<td></td>
<td></td>
</tr>
<%
答案 0 :(得分:1)
您还需要一个嵌套循环
for (String arrayElement: entry.getValue()) {
<%=arrayElement%>
您可以在<TD>
而不是简单<td><%=entry.getValue()%></td>
答案 1 :(得分:1)
为什么我们不能在这里使用jstl?像..
<c:forEach var="entry" items="${products}">
Key: <c:out value="${entry.key}"/>
Value: <c:forEach var="arrayVar" items="${entry.value}">
<li>${arrayVar}</li>
</c:forEach>
</c:forEach>
答案 2 :(得分:0)
由于StanislavL和Shaded的答案,我设法得到了解决方案,所以完整的解决方案如下所示,
HashMap定义如下,
static HashMap<String,String[]> products = new HashMap<String, String[]>();
products.put("001",new String[] {"Samsung", "USD. 500 ", "5 Units" });
可以使用JSP将此Hashmap打印在如下图所示的表中。
<% int counter = 1; %>
<table class="styledLeft" id="moduleTable">
<thead>
<tr>
<th width="10%">No</th>
<th width="10%">Model No</th>
<th width="30%">Model/Make</th>
<th width="30%">Price</th>
<th width="20%">Available Quantity</th>
</tr>
</thead>
<tbody>
<%
for (Map.Entry<String, String[]> entry : orders.entrySet()) {
%>
<tr>
<td><%=counter++%></td>
<td><%=entry.getKey()%></td>
<%for (String arrayElement: entry.getValue()) {%>
<td><%=arrayElement%></td>
<%
}
%>
</tr>
<%
}
%>
</tbody>
</table>
最终输出将如下所示,