- 浏览: 150548 次
- 性别:
- 来自: 彩虹之巅
最新评论
-
qq970836452:
[url][img][url][url][img][url][ ...
spring中配置声明式事务的几种方式 -
qq970836452:
[img][/img]
spring中配置声明式事务的几种方式 -
qq970836452:
[*]
spring中配置声明式事务的几种方式 -
qq970836452:
[img]||[/img][img][/img][url][u ...
spring中配置声明式事务的几种方式 -
qq970836452:
[img][/img][img][/img][url][url ...
spring中配置声明式事务的几种方式
前几天在javaeye上看到有这样一个帖子(http://www.iteye.com/topic/245728),今天把我的解决代码贴在我的blog中。数据库是这样的记录
year,month,title
2004 3 第一条标题
2004 5 第二条标题
2005 6 第三条标题
2005 6 第四条标题
2002 6 第五条标题
要求在前台以年,月,日,树状展示,比如点击2004,然后出来下面所有的月,在点击月,出来下面所有的标题
这里算是做一个dtree的简单应用吧。
package app; public class Title { private int year; private int month; private String name; public Title() { } public Title(int year, int month, String name) { this.year = year; this.month = month; this.name = name; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package app; public class TreeDaoImpl { public Title[] queryAllTitle() { Title[] titles = new Title[5]; titles[0] = new Title(2004, 3, "第一条标题"); titles[1] = new Title(2004, 5, "第二条标题"); titles[2] = new Title(2005, 6, "第三条标题"); titles[3] = new Title(2005, 6, "第四条标题"); titles[4] = new Title(2002, 6, "第五条标题"); return titles; } }
package app; import java.util.*; public class Node { private Object data; private Node parent; private List<Node> children; public Node() { children = new ArrayList<Node>(); } public Node(Object data, Node parent) { this.data = data; this.parent = parent; children = new ArrayList<Node>(); } public boolean hasChildren() { return children.size() != 0; } public boolean containChildData(Object data) { return queryChildByData(data) != null; } public Node queryChildByData(Object data) { Node r = null; for(Node node : children) { if(node.getData().equals(data)) { r = node; break; } } return r; } public void addChild(Node node) { children.add(node); } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Node getParent() { return parent; } public void setParent(Node parent) { this.parent = parent; } public List<Node> getChildren() { return children; } public void setChildren(List<Node> children) { this.children = children; } }
package app; public class MenuTreeBuilder { public MenuTreeBuilder(TreeDaoImpl dao) { this.dao = dao; idx = 1; buffer = new StringBuffer(); } public void generateMenuTree(String rootName) { root = new Node(rootName, null); Title[] titles = dao.queryAllTitle(); for(int i = 0; titles != null && i < titles.length; i++) { Node yearNode = null; Node monthNode = null; String year = String.valueOf(titles[i].getYear()); String month = String.valueOf(titles[i].getMonth()); if( !root.containChildData(year) ) { yearNode = new Node(year, root); root.addChild(yearNode); } else { yearNode = root.queryChildByData(year); } if( !yearNode.containChildData(month) ) { monthNode = new Node(month, yearNode); yearNode.addChild(monthNode); } else { monthNode = yearNode.queryChildByData(month); } monthNode.addChild(new Node(titles[i].getName(), monthNode)); } } public String generateJS() { buffer.append("d = new dTree('d');\n"); buffer.append("d.add(" + idx + "," + "-1, '" + root.getData().toString() + "');\n"); privateGenerateJs(root); return buffer.toString(); } private void privateGenerateJs(Node parentNode) { int rootIdx = idx; for(int i = 0; i < parentNode.getChildren().size(); i++) { Node node = parentNode.getChildren().get(i); ++idx; buffer.append("d.add(" + idx + "," + rootIdx + ", '" + node.getData().toString() + "');\n"); privateGenerateJs(node); } } private TreeDaoImpl dao; private Node root; private int idx; private StringBuffer buffer; }
package app; public class Test { public static void main(String[] args) { TreeDaoImpl dao = new TreeDaoImpl(); MenuTreeBuilder mtb = new MenuTreeBuilder(dao); mtb.generateMenuTree("年份"); String s = mtb.generateJS(); System.out.println(s); } }
最后,把程序生成的JS替换使用dtree的例子中的部分JS即可。当然,实际应用可能不是这个样子,这里只是做个例子,这个程序可以根据自己的需要更改。程序控制台输出
d = new dTree('d');
d.add(1,-1, '年份');
d.add(2,1, '2004');
d.add(3,2, '3');
d.add(4,3, '第一条标题');
d.add(5,2, '5');
d.add(6,5, '第二条标题');
d.add(7,1, '2005');
d.add(8,7, '6');
d.add(9,8, '第三条标题');
d.add(10,8, '第四条标题');
d.add(11,1, '2002');
d.add(12,11, '6');
d.add(13,12, '第五条标题');
附件中的图片是运行效果截图:
发表评论
-
spring中配置声明式事务的几种方式
2009-06-30 18:31 2913(1)通过TransactionProxyFactoryBea ... -
spring中AOP代理的几种方式
2009-06-24 14:45 4757部分例子摘自 spring in action (1)使用P ... -
hibernate实战(第2版)读书笔记(一)
2009-05-28 09:38 3074最近时间重读hibernate实战(第2版),哈哈,很长时间不 ... -
SWT中使用Opengl画圆的例子
2009-03-09 22:26 5381import org.eclipse.opengl.GL; i ... -
Windows下VC6配置Opengl开发环境
2009-03-05 08:14 4810最近需要了解下Opengl,于是开始鼓捣Opengl,从网上下 ... -
用SWT写的简单的通讯录
2009-01-19 12:32 1982用SWT写了个简单的通讯录,管理自己的手机号, -
用SWT做的简单的文件浏览器
2009-01-03 17:55 2889一个用swt做的简单的文件浏览器, package hell ... -
hibernate3 one-ton-one总结之关联表关联实现one-to-one
2008-11-08 19:29 1629在hibernate3中,one-to-one关联主要通过3种 ... -
hibernate3 one-to-one总结之主外键关联
2008-11-08 19:21 2607在hibernate3中,one-to-one关联主要通过3种 ... -
hibernate3 one-to-one总结之共享的关联主键
2008-11-08 19:14 2386在hibernate3中,one-to-one关联主要通过3种 ... -
hibernate3中使用hsql的sequence生成主键
2008-10-25 09:58 3069今天,想尝试下使用hsql的sequence来作为hibern ... -
怎么样让ibatis原生支持C3P0
2008-09-03 08:02 2381昨天,在javaeye上看到一个帖子,http://www.i ... -
在IE和Firefox都通用的弹出对话框
2008-08-15 06:44 4449test.html <!DOCTYPE html PUB ... -
JAVA版 俄罗斯方块
2008-07-26 11:00 3798把以前写的程序拿出来晒晒 -
JAVA版 连连看
2008-07-07 20:26 6400以前写的连连看,大家共同玩下。 -
彻底解决超链接提交中文乱码问题
2008-04-26 11:08 27060在网页中的超链接,例如 <a href="/s ... -
使用JAVA在JSP中生成饼图
2008-03-25 16:27 3847通过在服务器端生成图片 然后这样在页面中的图片可以真正的跨浏览 ... -
JSP 分页
2008-02-26 12:59 2896package examples; import java. ... -
设计模式之 Visitor
2007-12-12 14:27 1419package designpattern; pub ... -
设计模式之 Intercepting Filter
2007-12-12 14:13 2407package filter; public int ...
相关推荐
**Dtree JS脚本DEMO** 是一个基于JavaScript实现的树形菜单库,它提供了简单易用的功能,便于开发者在Web应用中构建层次结构清晰的菜单系统。在给定的压缩包文件中,包含了以下几个关键组件: 1. **dtree.css**: 这...
例如,一个简单的dTree初始化代码可能如下: ```javascript var treeData = { "root": [ { "text": "节点1", "children": [ {"text": "子节点1.1"}, {"text": "子节点1.2"} ] }, { "text": "节点2", ...
本文将深入探讨“js dtree无限级扩展的树形菜单”这一主题,这是一种基于JavaScript的树形菜单插件,适用于构建多层次、可扩展的导航系统。 首先,我们来了解“js dtree”的基本概念。js dtree 是一个JavaScript库...
简单应用dtree时,可以按照以下方式操作: 1. **加载数据**:根据业务需求,将后端返回的树状数据转换为dtree所需的格式。 2. **初始化组件**:调用dtree的构造函数,传入数据和配置项,创建树组件实例。 3. **绑定...
原始dtree适用于简单的项目,但它可能缺乏一些高级特性,比如搜索、拖放或者右键菜单。 接下来是右键dtree,这是对原始dtree的一种增强,通过集成jQuery库,增加了右键上下文菜单功能。jQuery使得DOM操作更加简洁...
Dtree是一款JavaScript插件,专为创建这样的树形目录而设计,它结合了实用性与美观性,使得在网页中实现交互式的树状菜单变得简单易行。 **Dtree的基本原理:** Dtree插件基于HTML、CSS和JavaScript构建,通过...
在上述示例中,我们创建了一个简单的树结构,并用JavaScript实例化了dTree,传入了数据源(`#tree`元素)和主题。 dTree还支持通过JSON数据动态生成树结构,这对于从服务器获取数据非常有用。此外,它还提供了丰富...
<script type="text/javascript" src="/js/dtree.js"> ``` 2. **HTML结构准备** 创建一个`div`元素作为`dtree`的容器,为其设置一个ID,以便在JavaScript中引用: ```html <div id="dtree"> ``` 3. **生成...
这个框架的核心在于dtree.js文件,这是一个JavaScript脚本,包含了树形结构的逻辑处理和交互事件。dtree.css则负责样式设定,确保树形结构在页面上展示得美观且易用。img文件夹可能包含了一些用于表示展开/折叠状态...
**dtree与dtree_checkbox: JS控件的深入解析** 在网页开发中,交互性和用户体验是至关重要的元素,而JavaScript(简称JS)作为客户端脚本语言,为实现这些功能提供了强大的支持。在这个话题中,我们将重点探讨两种...
1. **易用性**:layui dtree的API设计简单明了,开发者可以通过几行代码快速实现树形结构的展现。 2. **灵活性**:它可以自定义节点的展开、关闭、选中、禁用等多种状态,支持异步加载数据,满足各种业务需求。 3. *...
dTree是一种广泛应用于Web开发中的JavaScript树形菜单库,它提供了丰富的功能,使得在网页上构建交互式的树状结构变得简单。这个压缩包文件包含了学习dTree所需的各种资源,包括源码、帮助文档、JavaScript文件以及...
"dtree"通常指的是用于构建和操作这种树形结构的JavaScript库。在JavaScript中实现树形结构可以帮助我们处理各种复杂的数据结构问题,如文件系统、组织架构、菜单导航等。下面我们将深入探讨如何使用dtree库来实现和...
安装dtree非常简单,首先解压dtree源码包`dtree.zip`,其中包含了必要的资源文件,如图像文件、API文档、CSS样式表、JavaScript脚本和示例文件。将这些文件放置在项目的webroot目录下,然后在需要使用dtree的HTML或...
在本实例中,Dtree被应用于一个简单的JavaServer Pages (JSP)项目,为初学者提供了一个直观的学习入口。 JSP是Java平台上的服务器端技术,用于创建动态web内容。它允许开发者将HTML、CSS、JavaScript与Java代码混合...
在前端开发中,Dtree和Xtree是两种常见的JavaScript实现树型菜单的库。下面将详细介绍这两个库以及相关知识点。 1. Dtree(Dynamic Tree) Dtree是一个轻量级的JavaScript库,它提供了创建动态树形菜单的功能。这...
`dtree`的JavaScript包是实际应用于网页中的代码,可能包含`.js`文件或模块化格式如`.es6.js`、`.mjs`等。这些包通常包含了`dtree`的全部功能,开发者可以通过引入包并在JavaScript代码中调用相关方法来使用决策树。...
以下是一个简单的`dtree`使用示例: ```html <!DOCTYPE html> <title>dtree Demo <link href="dtree.css" rel="stylesheet" type="text/css"/> <div id="treeContainer"></div> <script src="dtree.js"> ...
`dtree`作为一款轻量级的JavaScript插件,以其简单易用、高度自定义的特点,在前端开发领域广受欢迎。本文将深入解析`dtree`的使用方法,帮助开发者快速上手,灵活运用。 #### CSS样式定义 `dtree`的外观和布局主要...
在本例中,我们将探讨如何简单地使用`dtree`来创建和应用树形菜单。 **基本使用步骤** 1. **引入dtree库** 在HTML文件中,首先需要通过`<script>`标签引入`dtree`的JavaScript库。通常,这可以通过下载库文件并将...