java 封装easyui tree树结构无限极分类(递归调用)

90 篇文章 1 订阅
46 篇文章 1 订阅
 public Object queryDiseaseDisCode() {
        List<Map<String,Object>> treeList  =new ArrayList<Map<String,Object>>();
        //查询第一级分类,即:最顶层节点
       List<Disease> doseaseList = diseaseDao.selectDisCode();
        for (int i = 0; i < doseaseList.size(); i++) {  
            Map<String, Object> map = null;  
            Disease disease = (Disease) doseaseList.get(i); 
                if (disease.getParentId().equals(disease.getId)) {  
                    map = new HashMap<String, Object>();  
                    //这里必须要将对象疾病的编号disCode、disChineseName转换成tree在页面的显示形式id、text
                    //tree,不是数据表格,没有在页面通过columns转换数据的属性  
                    map.put("id", disease.getId());         //id  
                    map.put("text",disease.getText());      //疾病名 
                    map.put("children", createTreeChildren(doseaseList,disease.getId));  
                }  
            if (map != null)  
                treeList.add(map);  
        } 
        return treeList;
    }
    /** 
     * 递归设置疾病树 
     * @param list 
     * @param fid 
     * @return 
     */ 
    private List<Map<String, Object>> createTreeChildren(List<Disease> list, String fid) {
        Map<String, Object> pdata = new HashMap<String, Object>();
        pdata.put("id", fid);
        //根据父节点Id查询该父节点下所有的子节点
       List<Disease> childrenList = diseaseDao.selectDisChildCode(pdata);
        List<Map<String, Object>> childList = new ArrayList<Map<String, Object>>();  
        for (int j = 0; j < childrenList.size(); j++) {  
            Map<String, Object> map = null;  
            Disease treeChild = (Disease) childrenList.get(j); 
                if (treeChild.getParentId().equals(fid)) {  
                    map = new HashMap<String, Object>();  
                    //这里必须要将对象角色的id、name转换成tree在页面的显示形式id、text  
                    //tree,不是数据表格,没有在页面通过columns转换数据的属性  
                    map.put("id", treeChild.getId());         //id  
                    map.put("text",treeChild.getText());      //疾病名
                    map.put("children", createTreeChildren(childrenList, treeChild.getId()));  
                }  
            if (map != null)  
                childList.add(map);  
        }  
        return childList;  
    } 
实体类:
 /** id*/
    private Integer id;
    /** 节点名称*/
    private String text;
    /**父亲Id*/
    private String parentId;
给出get,set方法
sql:
SELECT 
        a.disCode,
        a.disChineseName,
	b.fatherCode AS parentId
FROM  disease a 
LEFT JOIN diseaseRelation b 
ON a.disCode = b.disCode
WHERE b.fatherCode = b.disCode

前台jsp:
<script type="text/javascript">
		var base = "${pageContext.request.contextPath}";
		$(document).ready(function(){
			 $('#tree').tree({  
	            url: base+"/gene/queryGene.do",
	        });  
		});
		
	</script>
  
  </head>
  
 <body>
	<ul id="tree" class="easyui-tree"></ul> 
</body>

注意:必须是 id,text  否则easyui tree解析不了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值