개발 등/JSP

JSTL로 HashMap 출력하기

darkhorizon 2008. 12. 4. 16:36
728x90
반응형

  # Servlet

  HashMap<String,ArrayList<String>> map=new HashMap<String,ArrayList<String>>();
  ArrayList<String> a1=new ArrayList<String>();
  ArrayList<String> a2=new ArrayList<String>();
  ArrayList<String> a3=new ArrayList<String>();
  a1.add("살인의 추억");   a1.add("플란다스의 개");  a1.add("괴물");
  a2.add("복수는 나의 것");  a2.add("올드보이");  a2.add("친절한 금자씨");
  a3.add("8월의 크리스마스");  a3.add("봄날은 간다");  a3.add("외출");
  map.put("봉준호",a1);  map.put("박찬욱", a2);  map.put("허진호", a3);
  ArrayList<String> list=new ArrayList<String>();
  Set set=map.keySet();
  Iterator iter=set.iterator();
  while(iter.hasNext()){
   String s=(String)iter.next();
   list.add(s);
  }
  request.setAttribute("key",list);
  request.setAttribute("map", map);

# JSP


<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.util.*" %>   
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<html><head>
 <style>  td{border:1 solid blue;} </style>
</head>
  <table>
 <!-- request 영역의 map으로 forEach문 실행한다. -->
 <c:forEach var="list" items="${requestScope.map}" varStatus="num">
 <tr>
 <td>${num.count}
<!--map.key는 key값을 출력한다...  --> 
 <td>${list.key}
<!--map.value로 이중 forEach문을 실행한다..  --> 
  <c:forEach var="item" items="${list.value}">
 <td>${item} 
  </c:forEach>
 </tr>  
 </c:forEach>
 </table>  

728x90