我有HashMap
,如下所示:
HashMap<String, Integer> jcbs = new HashMap<String, Integer>();
密钥为String
,值为Integer
。
现在我有一个html文件,其中有一个表。
我现在需要做的是将HashMap
的所有键和值填充到此html表中。
答案 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>