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>
分享到:
相关推荐
比前一个资源 用Java集合递归实现通用树Tree http://download.csdn.net/source/2864857 新增了jsp页面输出,用jstl递归输出。
一个简单的小例子递归实现list按照index排序的树
不要分,要的是人气!资源很给力的!欢迎下载!
TreeView用递归实现无限级树.rar
NULL 博文链接:https://genius.iteye.com/blog/1099251
非递归实现二叉树的先、中、后序遍历 typedef struct binarytree /*定义一棵二叉树*/ { char data; struct binarytree *LChild,*RChild; }BiTNode,*BiTree;
本文实例讲述了AngularJS递归指令实现Tree View效果的方法。分享给大家供大家参考,具体如下: 在层次数据结构展示中,树是一种极其常见的展现方式。比如系统中目录结构、企业组织结构、电子商务产品分类都是常见的...
linux 目录树实现代码,使用的是递归的算法
Tree RNNs 即递归神经网络的Theano实现
通过本文给您演示一下如何有效地使用递归组件,我将通过建立一个可扩展/收缩的树形菜单的来一步步进行。下面通过本文给大家分享用 Vue.js 递归组件实现可折叠的树形菜单,需要的朋友参考下吧
二叉查找树(Binary Search Tree)-非递归实现打印和插入.c
我们可以使用递归函数来实现这个功能。首先,我们需要将当前节点之前的所有节点扁平化,然后将它们添加到选中数组中。这种方法可以确保用户选择的节点都被选中。 在实现 Ctrl 和 Shift 多选功能时,我们需要注意...
java实现树父节点递归获取树子节点 工具类,以后再项目中直接用即可
自己手写一个tree实例,tree实现其实很简单,主要先弄清楚html如何显示tree,可以先查看html元素,会发现tree的每个节点都是...然后使用javascript操作dom,例子中有些使用javascript的面向对象,tree计算核心为递归。
c++ 封装 二叉排序树 私有成员函数递归 非递归的插入 实现的树的各种操作,并且利用c++的面向对象思想进行封装,内部包含三个文件BinaryTree.cpp, BinaryTree.hpp , main.cpp
也是我自己开发的从无到有的过程,所以它可以为你提供一些Tree组件开发的思路,本文重点给大家介绍vue递归组件的简单实现,感兴趣的朋友跟随小编一起看看吧
java中List结构与tree结构相互转化。可实现list转树与tree转list。本链接为解读https://jingyan.baidu.com/article/455a99507b687da1662778ec.html。
主要为大家详细介绍了java实现递归菜单树,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在非递归实现中,使用栈或队列来存储二叉树的结点,循环地访问和处理结点。 在给定的代码中,使用了非递归的方式来实现二叉树的中序遍历,使用栈来存储二叉树的结点。在main函数中,首先建立了一棵二叉树,然后使用...