Digamos que eu tenha um objeto que contém objetos do mesmo tipo que os filhos, assim:
public class Box {
int id;
String name;
List<Box> boxList;
}
Como faço para iterar por meio de seus filhos potencialmente infinitos no JSP? Simples: faça com que uma página se inclua. Tenho duas páginas, main.jsp e box.jsp.
Primeiro, main.jsp incluirá box.jsp depois de definir a lista de caixas no escopo da solicitação:
<c:set var="boxList" value="${boxList}" scope="request" />
<jsp:include page="box.jsp" />
Em seguida, box.jsp itera sobre a lista e se inclui para iterar sobre seus filhos:
<ul>
<c:forEach var="box" items="${boxList}">
<li>
${box.name} <!-- or whatever else you want to display -->
<jsp:include page="box.jsp" />
</li>
</c:forEach>
</ul>
Estrondo. Feito.