在jsp中使用嵌套数组迭代和打印HashMap的内容

时间:2014-05-13 13:10:40

标签: java javascript arrays jsp hashmap

我有一个以下面的方式创建的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>
            <%

3 个答案:

答案 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>

最终输出将如下所示,

The Final OutPut