`
张玉龙
  • 浏览: 726261 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

用递归实现的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++) {
					%>
					<%="&nbsp;&nbsp;"%>
					<%
						}
					%>
					<%=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>


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics