代码改变世界

How to iterate HashMap using JSTL forEach loop

2013-04-01 23:04  TONY|小四  阅读(377)  评论(0编辑  收藏  举报

JavaServer Tag library is one of the most used JSP tag library out there. I have used it almost in all of my JEE based projects. The best feature probably is the Iterator API in JSTL tag library.

Here is a small code snippet which you might not know. Its very easy to iterate Lists using JSTL. For example:

 
 Java Code By TONY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
//Java
List<String> cityList = new ArrayList<String>();
cityList.add(
"Washington DC");
cityList.add(
"Delhi");
cityList.add(
"Berlin");
cityList.add(
"Paris");
cityList.add(
"Rome");
 
request.setAttribute(
"cityList", cityList);
 
 
//JSP
<c:forEach var="city" items="cityList">
    <b> ${city} </b>
</c:forEach>
But what if you want to iterate a Hashmap? Well that too is piece of cake. Here is the example:
 
 Java Code By TONY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
//Java
Map<StringString> countryCapitalList = new HashMap<StringString>();
countryCapitalList.put(
"United States""Washington DC");
countryCapitalList.put(
"India""Delhi");
countryCapitalList.put(
"Germany""Berlin");
countryCapitalList.put(
"France""Paris");
countryCapitalList.put(
"Italy""Rome");
         
request.setAttribute(
"capitalList", countryCapitalList);
 
//JSP
<c:forEach var="country" items="${capitalList}">
    Country: ${country.key}  - Capital: ${country.value}
</c:forEach>