2013-01-03 13 views
7

Ho un servizio di backend che mi restituisce un oggetto Info. Questo oggetto Info ha un elenco di oggetti FolderGroup che a sua volta contiene un elenco di oggetti FolderGroup e così via.Come presentare una raccolta ricorsiva in JSP

Fondamentalmente rappresenta le cartelle e le sottocartelle. Ma nella mia pagina JSP, non saprei fino a che profondità è presente per me per iterare. Come può essere gestito con JSTL?

risposta

14

Creare un file JSP tag (WEB-INF/tags/folderGroups.tag) contenente il seguente codice:

<%@ attribute name="list" required="true" %> 
<%@ taglib tagdir="/WEB-INF/tags" prefix="myTags" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<c:if test="${!empty list}"> 
    <ul> 
    <c:forEach var="folderGroup" items="${list}"> 
     <li><c:out value="${folderGroup.name}"/></li> 
     <myTags:folderGroups list="${folderGroup.subGroups}"/> 
    </c:forEach> 
    </ul> 
</c:if> 

Il tag richiama sé stesso ricorsivamente per generare una struttura di cartelle.

E dentro il vostro JSP, fare

<%@ taglib tagdir="/WEB-INF/tags" prefix="myTags" %> 
... 
<myTags:folderGroups list="${info.folderGroups}"/> 
+0

Grazie mille :-). Proveremo in pochi minuti e aggiorneremo. – Sripaul

+0

Ha funzionato come un fascino !!! Grazie mille :-) – Sripaul

+3

Ho dovuto aggiungere 'type' all'attributo, altrimenti l'ho preso come String. i.e '<% @ attribute name =" list "type =" MyClass "required =" true "%>' – Hagai

Problemi correlati