2010-02-05 11 views
41

mam klasy javy który ustawia atrybut serwlet obiektu hashmap:użytkowania <c:forEach> z HashMap

request.setAttribute("types", da.getSecurityTypes()); 

gdzie request HttpServletRequest jest to obiekt, a da.getSecurityTypes() zwraca się obiekt hashmap.

Czy istnieje sposób, aby przejść do kolekcji HashMap za pomocą c: foreach lub niektórych innych znaczników JSTL?

Myślałam:

<c:forEach var="type" items="${types}"> 
       ... 
    </c:forEach> 

lub jeśli nie można zrobić, w jaki sposób można by zrobić własny tag Ten proces?

Uciekanie się do kodu Java na mojej stronie JSP jest moją ostatecznością i chciałbym wiedzieć, czy jest to możliwe z JSTL.

Dzięki, Jonas.

Odpowiedz

95

Tak, jest to całkowicie dopuszczalne.

Podczas korzystania z <c:forEach> do iterowania nad Map, każdy element w iteracji jest instancją Map.Entry. Na przykład:

<c:forEach var="type" items="${types}"> 
    Key is ${type.key} 
    Value is ${type.value} 
</c:forEach> 
5

Działa, będziesz mieć type.key i do grania w pętli.

Powiązane problemy