使用java将HashMap的键和值转换为HTML表

时间:2015-04-28 06:08:19

标签: java hashmap html-table

我有HashMap,如下所示:

HashMap<String, Integer> jcbs = new HashMap<String, Integer>();

密钥为String,值为Integer

现在我有一个html文件,其中有一个表。

我现在需要做的是将HashMap的所有键和值填充到此html表中。

4 个答案:

答案 0 :(得分:1)

<%

    StringBuilder stringMapTable = new StringBuilder();
    stringMapTable.append("<table>");

    Iterator it = jcbc.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pair = (Map.Entry)it.next();
            stringMapTable.append("<tr><td>" + entry.getKey() + "</td><td>" +entry.getValue() + "</td></tr>");
            System.out.println(pair.getKey() + " = " + pair.getValue());
            it.remove(); // avoids a ConcurrentModificationException
        }

  String mapTable = stringMapTable.toString();

%>

在HTML中

<%=mapTable %>

答案 1 :(得分:0)

可以这么简单:

StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.append("<table>");

for (Map.Entry<String, Integer> entry : map.entrySet()) {
    htmlBuilder.append(String.format("<tr><td>%s</td><td>%d</td></tr>",
            entry.getKey(), entry.getValue()));
}

htmlBuilder.append("</table>");

String html = htmlBuilder.toString();

答案 2 :(得分:0)

要在jsp或jsf中的html页面中迭代并显示hashmap,可以通过以下方式完成:

如果是JSP,请使用jstl:

Map books = new HashMap();

<c:forEach var="booksVar" items="${books}">
    Book Id: ${books.key} , Capital: ${books.value}
</c:forEach>

这可以很容易地与Native html表代码一起使用。

答案 3 :(得分:0)

随着java8的出现,我们可以使用stream api在纯java中创建html表。

    final Map<String,Integer> map =  new HashMap<>();
    
    map.put("key1", 5);
    map.put("key2", 7);
    
    String tableBody =
    map.keySet()
       .stream()
       .map(item -> new StringBuilder("<tr><td>")
                                     .append(item)
                                     .append("</td><td>")
                                     .append(String.valueOf(map.get(item)))
                                     .append("</td></tr>")
       )
       .collect(Collectors.joining());
    
    String tableContent = "<table>" + tableBody + "</table>";
    
    System.out.println("tableContent = "+tableContent);

要从地图在 jsp 中创建表,最好选择 JSTL。

    <table>
        <c:forEach var="entry" items="${mapObj}">
            <tr><td>${entry.key}</td> <td><${entry.value}</td></tr>
        </c:forEach>
    </table>