JSTL实现递归展示树型结构数据!

场景:

一个树型结构的数据在数据库里

映射为对象Tree(id, name, url....), Tree添加了一个自描述的属性List children

从数据库中根据根节点,递归出树结构放到List treeList中,现在要求在显示中按层级显示:


问题:因为未知树的层级是多少,JSTL中又不支持函数递归。

解决方案:使用文件包括的形式的解决,虽然不太优雅,但是总算实现了。

知识预备:

JSTL c标签的用法,c:forEach, c:import

JSP的作用域:page, request, session, application

c:import页面可以共享request作用域级别及其以上级别以上的数据,而不能共享page作用域的数据


实现:

主页面代码:




被包含的页面:__r.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/commons/pages/taglibs.jsp"%>

  
  
    ${index}
    ${level}
    ${cur.name}
  
  
    
    
    
  


总结:
用c:import来实现递归,退出条件是list中没有children了!


你可能感兴趣的:(Java)