以前都用forEach標簽迭代List,Set對象,今天需要用它來迭代Map對象,就研究了一下。
以下是試驗代碼:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" %>
<%@ taglib prefix="c" uri="<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>無標題文檔</title>
</head>
<%!
?public static class TTT{
??private String name;
??public TTT(String name){
???this.name = name;
??}
??public String getName(){
???return name;
??}
?}
%>
<%
?Map map = new LinkedHashMap();
?map.put(new TTT("111"),"aaaaaa");
?map.put(new TTT("222"),"bbbbbb");
?request.setAttribute("map",map);
%>
<body>
<c:forEach items="${map}" var="item">
${item.key.name}-${item.value}<br/>
</c:forEach>
</body>
</html>
item內保存的是java.util.Map.Entry對象這個對象有getKey,setKey,getValue,setValue方法,這樣就可以在forEach內部使用map的key和value了。