用递归实现的Tree



package com.qiyi.service;

import java.util.ArrayList;
import java.util.List;

import com.qiyi.dao.DAO;
import com.qiyi.po.Tree;

public class Service {
private DAO dao;


public DAO getDao() {
return dao;
}

public void setDao(DAO dao) {
this.dao = dao;
}

public List<Tree> findAllService() {
List<Tree> list = dao.findAll();
return list;
}

public void saveService(Tree transientInstance) {
dao.save(transientInstance);
}

public void findById(int id) {
dao.findById(id);
}



private List<Tree> l = new ArrayList<Tree>();

public List<Tree> showTree() {
l.clear();
List<Tree> list = (List<Tree>) dao.findByPid(0);
for (Tree t : list) {
if (t.getIsleaf() != 0) {
l.add(t);
list = this.tree(t.getId(), 1);
}

}
return l;

}
private List<Tree> tree(int id, int level) {
List<Tree> list = (List<Tree>) dao.findByPid(id);
for (Tree t : list) {
if (t.getIsleaf() == 0){
l.add(t);
t.setLeveler(level+1);
tree(t.getId(), t.getLeveler());

}
if (t.getIsleaf() != 0) {
//非叶子节点
l.add(t);
t.setLeveler(level+1);
tree(t.getId(), t.getLeveler());
}
}
return l;
}

}



jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*,com.qiyi.po.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<tr>
<a href="./index.jsp">首页</a>

<a href="./saveRootAction.action">增加新的根节点</a>
</tr>
<table align="left" border="2" bordercolor="ffffff">


<%
List<Tree> list = (List<Tree>) request.getAttribute("list");
for (Tree t : list) {
%><tr>
<td><%=t.getId()%></td><td>
<%
for (int i = 0; i < t.getLeveler(); i++) {
%>
<%="  "%>
<%
}
%>
<%=t%>
</td><td>
<%
if (t.getIsleaf() != 0) {
%>
</td><td></td><td><a href="./saveNodeAction.action?pid=<s:property value="t.getPid()"/>">增加子节点</a>
<br>
<%
} else {
%>
</td><td><a href="./saveCourseAction.action">增加课件</a>
<br>
<%
}
%>

</td></tr>
<%
}
%>


</table>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值