2014-03-28 58 views
1

任何人都可以請解釋我如何迭代這個地圖單獨部門和報告在下面的例子中使用jstl。如何使用jstl迭代地圖?

Map<String, List<Object>> map = new HashMap<String, List<Object>>(); 
    List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId); 
    map.put("department", department); 
    map.put("allreportingTo", allreportingTo); 
    map.put("alldepartments", alldepartments); 
request.setAttribute("map", map); 

回答

4

如下圖所示:

<c:forEach var="entry" items="${map}"> 
    Key: <c:out value="${entry.key}"/> 
    Value: <c:out value="${entry.value}"/> 
</c:forEach> 

要使用的關鍵,如下從地圖上獲取列表值:

${map.department} 

你可以遍歷目錄,如下圖所示:

<c:forEach items="${map.department}" var="element"> 
    <tr> 
    <td>${element.deptName}</td> 
    </tr> 
</c:forEach> 
+0

請你看看我的更新。 – user3214269

+0

如何分別迭代內部列表。 – user3214269

+0

更新了答案。 –

0

試試這個,

List<String> list = new ArrayList<String>(map.keySet()); 
request.setAttribute("list", list); 

<c:forEach< items="${list}" var="entry"> 
    <c:forEach items=${map[entry]} var="employeeDept"> 
     <c:out value ="${employeeDept.name}"/> 
// get some more values like this 
    </c:forEach> 
</c:forEach> 
0

你正在寫

Map<String, List<Object>> map = new HashMap<String, List<Object>>(); 
List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId); 
List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId); 
map.put("department", department); 

地圖密鑰字符串和值對象的名單,但你作爲價值EmmployeeDeparment

的地圖列表,這樣才能進入工作存儲你NEDD改變,如:

Map<String, List<EmployeeDeparment>> map = new HashMap<String, List<EmployeeDeparment>>(); 
List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId); 
List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId); 
map.put("department", department); 
and your remain code... 

<c:forEach items="${map}" var="m"> 
    <c:forEach items="${map.value}" var="list"> 
     ${list.id } 
     ${list.name } 
    </c:forEach> 
</c:forEach> 
0
<c:forEach items="${map.department}" var="dept"> 
    ${dept.deptName}     
</c:forEach> 

的insted的DEPTNAME把你的模型屬性。