用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 ...
随机推荐
- java 465端口发送邮件
package com.fr.function; import java.io.IOException; import java.security.Security; import java.util ...
- Android 解读Event和Main Log
1 Android P EventLogTags文件 Android P 9.0.0 所有EventLogTags文件List: system/bt/EventLogTags.logtags syst ...
- 在Linux下运行引入了外部jar包的java程序
如图:H.java里引入了commons-io-2.2.jar 代码如下: import org.apache.commons.io.IOUtils; public class H{ public s ...
- C++实现委托机制(三)——lambda表达式封装
C++.引言: 其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lamb ...
- 暚光科技定位系统数据解析-java
暚光科技定位系统数据解析-java package com.ygkj.test; import java.io.DataInputStream; import java.io.IOException; ...
- IDEA 如何搭建maven 安装、下载、配置(图文)
1.下载 maven 压缩包 输入网址 www.apache.org 会看到以下界面 住下划看到以下界面 然后看到这个界面 选择下载这个版本 下载后 解压 maven 压缩包 (文件路径不建议用有中文 ...
- [LeetCode] 220. Contains Duplicate III 包含重复元素 III
Given an array of integers, find out whether there are two distinct indices i and j in the array suc ...
- [LeetCode] 680. Valid Palindrome II 验证回文字符串 II
Given a non-empty string s, you may delete at most one character. Judge whether you can make it a pa ...
- 湖南省第6届程序大赛 Repairing a Road
Problem G Repairing a Road You live in a small town with R bidirectional roads connecting C crossing ...
- spring security的BCryptPasswordEncoder加密和对密码验证的原理
目录 BCryptPasswordEncoder加密和对密码验证的原理 一.加密算法和hash算法的区别 二.源码解析 1. encode方法 2. BCrypt.hashpw方法 3. matche ...