用java代码实现构造目录树

怎么用java代码实现上面这样的目录树?
首先创建数据表

每条数据记录自己的id以及父节点的id
然后进入java代码部分:
public String directory(String author)
{
StringBuffer treeHtml = new StringBuffer();
// 得到所有的目录词(包含全部字段)
List<Tutorial> words = bdExpandService.getAllWords(author);
for (int i = 0; i < words.size(); i++)
{
Tutorial wordMap = words.get(i);
// System.out.println(wordMap);
if (wordMap.getPid() == 0)
{
treeHtml.append("<dl>");
// 得到根目录的id,根据这个id找到这个的所有子目录
appendTree(words, wordMap, treeHtml);
treeHtml.append("</dl>");
}
}
words.clear();
return treeHtml.toString();
} /**
*
* 构造目录树 <功能详细描述>
*
* @param tutorials
* @param tutorial
* @param treeHtml
* @see [类、类#方法、类#成员]
*/
private void appendTree(List<Tutorial> words, Tutorial wordMap, StringBuffer treeHtml)
{
int tid = wordMap.getTid();
// 得到根目录的id,根据这个id找到这个的所有子目录
Map<String, Object> map = childTreeHtml(words, tid);
String nodeHtml = map.get("treeHtml").toString();
boolean hasChild = Boolean.valueOf(map.get("hasChild").toString());
if (hasChild)
{
treeHtml.append("<dt class='node-close' onclick='showTree(").append(tid).append(")'");
treeHtml.append("id='tree_dt").append(tid).append("'>");
treeHtml.append(wordMap.getKeyWord()).append("</dt>");
treeHtml.append(nodeHtml);
} else
{
treeHtml.append("<dt>");
treeHtml.append(wordMap.getKeyWord()).append("</dt>");
}
} /**
*
* 得到子目录,构造目录树 <功能详细描述>
*
* @param tutorials
* @param tid
* @return
* @see [类、类#方法、类#成员]
*/
private Map<String, Object> childTreeHtml(List<Tutorial> words, int tid)
{
Map<String, Object> map = new HashMap<String, Object>();
StringBuffer treeHtml = new StringBuffer();
boolean hasChild = false;
for (int i = 0; i < words.size(); i++)
{
Tutorial wordMap = words.get(i);
int pid = wordMap.getPid();
if (pid == tid)
{
hasChild = true;
treeHtml.append("<dd name='tree_dd").append(pid).append("'");
treeHtml.append("style='display: none;'>").append("<dl>");
appendTree(words, wordMap, treeHtml);
treeHtml.append("</dl></dd>");
}
}
map.put("treeHtml", treeHtml);
map.put("hasChild", hasChild);
return map;
}
JavaScript方法:
function showTree(tid)
{
var dds = $("dd[name='tree_dd" + tid + "']");
var dtClass = $("#tree_dt" + tid).attr("class");
if(dtClass == "node-close"){
$("#tree_dt" + tid).attr("class", "node-open");
$("dd[name='tree_dd" + tid + "']").each(function(){
$(this).show();
});
}else{
$("#tree_dt" + tid).attr("class", "node-close");
$("dd[name='tree_dd" + tid + "']").each(function(){
$(this).hide();
});
}
}
directory()方法返回的字符串就是整个目录树,然后将这个字符串传到前台页面显示,加上css样式就可以了
用java代码实现构造目录树的更多相关文章
- Java身份证归属地目录树
数据库结构: web管理界面: 目录树: 视频: 应用场景:
- [改善Java代码]使用构造块精炼程序
建议36: 使用构造代码块精炼程序 什么叫代码块(Code Block)?用大括号把多行代码封装在一起,形成一个独立的数据体,实现特定算法的代码集合即为代码块,一般来说代码块是不能单独运行的,必须要有 ...
- 用Java代码列出一个目录下所有的文件
1.File类 File类在java.io.File包中,所以要导入这个包. File类中用到的方法: boolean isDirectory() 测试此抽象路径名表示的文件是否是个目录 ...
- 如何用 Java 代码列出一个目录下所有的文件?
如果只要求列出当前文件夹下的文件,代码如下所示: import java.io.File; class Test12 { public static void main(String[] args) ...
- 如何用Java代码列出一个目录下所有的文件?
目录文件夹 File file=new File("H:\\"); for(File temp:file.listFiles()){//Java5的新特性之一就是增强的for循环. ...
- java File类 打印目录树状结构(递归)
import java.io.File; /** * 递归遍历 * */ public class FieTree { public static void main(String[] args) { ...
- java代码实现目录结构
今天用java代码来实现.像我们电脑盘符那样的目录结构.在代码开始之前首先.介绍一下.用.java代码实现目录的思想. 第一步:完成基础的.大家想.我们是如何获取文件的.是不是用File类,直接就获取 ...
- Java代码操作HDFS(在/user/root/下面創建目錄)
1.创建HDFS目录并打成jar包 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.h ...
- Java生成菜单树(目录树)的几种方式
本文介绍两种不同生成多级目录树的方式:1. 递归生成,2. map+list 集合生成.最下方会附上完整代码. 生成树的基本规则:子节点的par_id等于父节点的id. 1. 实体类 import ...
随机推荐
- PhpStorm使用sftp实现代码自动上传服务器
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/huihui940630/article/ ...
- redis-查看日志
转: redis-查看日志 redis在默认情况下,是不会生成日志文件的,所以需要配置 配置方法: 1.首先找到redis的配置文件 2.打开配置文件,找到logfile(可能有多个logfile,认 ...
- 【linux学习笔记六】压缩 解压缩命令
所有的压缩文件一定要写压缩格式的扩展名 .zip格式压缩 #压缩文件 zip 压缩文件名 源文件 #压缩目录 zip -r 压缩文件名 源目录 #解压缩 unzip 压缩文件 .gz格式压缩 #压缩为 ...
- [LeetCode] 212. Word Search II 词语搜索 II
Given a 2D board and a list of words from the dictionary, find all words in the board. Each word mus ...
- 【Sqoop学习之二】Sqoop使用
环境 sqoop-1.4.6 一.基本命令1.帮助命令 [root@node101 ~]# sqoop help Warning: /usr/local/sqoop-/../hbase does no ...
- Indy10 Tcp接收数据问题
在做Delphi开发时,使用Indy组件来做网络通讯是一种比较快捷的方式.今天要说一下indy10中tcp接收数据的问题. 我们在测试时经常使用Wrinteln来发送数据,用Readln来接收数据.用 ...
- 百度地图jsapi 自定义大头针的方法
百度地图jsapi 自定义大头针的方法<pre> var myIcon = new BMap.Icon("http://developer.baidu.com/map/jsdem ...
- Django组件之auth
一.什么是Auth模块 Auth模块是Django自带的用户认证模块,默认使用 auth_user 表来存储用户数据. 二.使用方法 1.创建超级用户 python3 manage.py create ...
- day39——SQL语句简单介绍、库、表、记录、安装mysql简单命令
day39 SQL语句简单介绍 库(增删改查) 查看数据库 show databases; 查看其中一个库 show create database db1; 创建数据库 create databas ...
- flask框架(三)——路由系统route转换成add_url_rule及源码分析
这节我们不用@app.route来写路由,而是通过add_url_rule 传统写法 (<int:nid>传递int类型参数,endpoint是取别名) @app.route('/det ...