2013-01-03 2 views
7

Ich habe einen Back-End-Dienst, der mir ein Info Objekt zurückgibt. Dieses Info Objekt hat eine Liste von FolderGroup Objekte, die wiederum eine Liste von FolderGroup Objekte und so weiter hat.So präsentieren Sie eine rekursive Sammlung in JSP

Grundsätzlich ist es, Ordner und Unterordner darzustellen. Aber auf meiner JSP-Seite würde ich nicht wissen, bis zu welcher Tiefe es für mich zur Verfügung steht. Wie kann dies mit JSTL gehandhabt werden?

Antwort

14

erstellen JSP-Tag-Datei (WEB-INF/tags/folderGroups.tag) den folgenden Code enthält:

<%@ 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> 

Der Tag ruft sich selbst rekursiv einen Ordner-Struktur zu erzeugen.

Und in Ihrem JSP, tun

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

:-) vielen Dank. Werde das in wenigen Minuten ausprobieren und updaten. – Sripaul

+0

Arbeitete wie ein Zauber !!! Vielen Dank :-) – Sripaul

+3

Ich musste dem Attribut 'type' hinzufügen, ansonsten habe ich es als String bekommen. ' ' <% @ Attributname = "Liste" Typ = "MeineKlasse" erforderlich = "Wahr"%> ' – Hagai