- 浏览: 71799 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (46)
- 行业应用 (10)
- Struts1.X学习开发应用 (7)
- Struts2学习开发应用 (2)
- Hibernate学习开发应用 (8)
- Spring2.5学习开发应用 (3)
- IBatis开发与应用 (2)
- Ajax学习开发应用 (3)
- DWR学习开发应用 (2)
- JQuery学习开发应用 (2)
- Ext学习开发应用 (2)
- WebService学习开发应用 (2)
- xfire学习应用开发 (2)
- xml学习开发应用 (2)
- java基础学习 (2)
- J2EE学习开发应用 (4)
- java Awt/Swing学习开发应用 (2)
- Java Web 学习开发应用 (17)
- J2SE基础学习 (2)
- java 网络编程学习开发应用 (2)
- 设计模式 (3)
- Oracle学习 (2)
- BD2学习 (2)
- 其他数据库 (2)
- SQL学习 (2)
- 报表工具 (6)
- 工作流 (2)
最新评论
核心提示:dtree生成漂亮的动态树型菜单 dtree是一个免费的javascript脚本,只需定义有限的几个参数,就可以做出漂亮的树型菜单。下载目录: http://www.destroydrop.com/javascripts/tree/
dtree是一个免费的javascript脚本,只需定义有限的几个参数,就可以做出漂亮的树型菜单。
以下是dtree的用法示例:
1)初始化菜单
- <script type="text/javascript">
- <!--
- var Tree = new Array;
- // nodeId | parentNodeId | nodeName | nodeUrl
- Tree[0] = "1|0|Page 1|#";
- Tree[1] = "2|1|Page 1.1|#";
- Tree[2] = "3|1|Page 1.2|#";
- Tree[3] = "4|3|Page 1.2.1|#";
- Tree[4] = "5|1|Page 1.3|#";
- Tree[5] = "6|2|Page 1.1.1|#";
- Tree[6] = "7|6|Page 1.1.1.1|#";
- Tree[7] = "8|6|Page 1.1.1.2|#";
- Tree[8] = "9|1|Page 1.4|#";
- Tree[9] = "10|9|Page 1.4.1|#";
- Tree[10] = "11|0|Page 2|#";
- //-->
- </script>
2)调用函数
- <div class="tree">
- <script type="text/javascript">
- <!--
- createTree(Tree,1,7); // starts the tree at the top and open it at node nr. 7
- //-->
- </script>
- </div>
2.jsp动态实现
分以下步骤实现动态的树型菜单:
1)在数据库建tree_info表,有nodeId,parentNodeId,nodeName,nodeUrl四个字段,来存储节点信息。
2)编写java类,用于从数据库找出节点信息,并且生成javascript脚本。
3)编写tag类。用于封装逻辑,简化jsp的开发。
4)建一个web程序进行测试。
3.详细过程
1)在数据库建表,脚本如下:
- CREATE TABLE `test`.`tree_info` (
- `node_id` INTEGER UNSIGNED NOT NULL DEFAULT -1,
- `parent_id` INTEGER UNSIGNED NOT NULL DEFAULT -1,
- `node_name` VARCHAR(45) NOT NULL,
- `ref_url` VARCHAR(45) NOT NULL,
- PRIMARY KEY(`node_id`)
- )
我使用mysql数据库,如果脚本细节有出入,请自行修改
按照上面的dTree示例插入数据
2)编写TreeInfo.java,这个类用于封装节点信息
- package com.diegoyun.web.tree;
- /**
- * @author Diegoyun
- * @version 1.0
- */
- public class TreeInfo {
- private int nodeId = -1;//node id
- private int parentId = -1;//parentId
- private String nodeName = null;//node name
- private String url = null;//url references
- public int getNodeId() {
- return nodeId;
- }
- public void setNodeId(int nodeId) {
- this.nodeId = nodeId;
- }
- public int getParentId() {
- return parentId;
- }
- public void setParentId(int parentId) {
- this.parentId = parentId;
- }
- public String getNodeName() {
- return nodeName;
- }
- public void setNodeName(String nodeName) {
- this.nodeName = nodeName;
- }
- public String getUrl() {
- return url;
- }
- public void setUrl(String url) {
- this.url = url;
- }
- }
编写TreeUtil.java,用于从数据库得到节点信息,封装到TreeInfo对象,并生成javascript脚本
- TreeUtil.java
- package com.diegoyun.web.tree;
- import java.util.Collection;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.Connection;
- import java.sql.DriverManager;
- /**
- * @author Diegoyun
- * @version 1.0
- */
- public class TreeUtil {
- public static List retrieveNodeInfos(){
- List coll = new ArrayList();
- String driverName = "com.mysql.jdbc.Driver";
- String host = "localhost";
- String port = ":3306";
- String serverID = "test";
- String userName = "root";
- String userPwd = "root";
- String url = "jdbc:mysql://" + host + port + "/" + serverID ;
- Connection conn = null ;
- PreparedStatement ps = null;
- ResultSet rs = null;
- try{
- Class.forName(driverName).newInstance();
- conn = DriverManager.getConnection(url , userName , userPwd);
- String sql = "select * from tree_info";
- ps = conn.prepareStatement(sql);
- rs = ps.executeQuery();
- TreeInfo info = null;
- while(rs!=null && rs.next()){
- info = new TreeInfo();
- info.setNodeId(rs.getInt(1));
- info.setParentId(rs.getInt(2));
- info.setNodeName(rs.getString(3));
- info.setUrl(rs.getString(4));
- coll.add(info);
- }
- // if(rs!=null){
- // rs.close();
- // rs=null;
- // }
- // if(ps!=null){
- // ps.close();
- // ps=null;
- // }
- }catch(Exception e){
- System.out.println(e);
- }
- return coll;
- }
- public static String createTreeInfo(List alist){
- StringBuffer contents = new StringBuffer();
- contents.append("<!--\n");
- contents.append("var Tree = new Array;");//create a array in javascript
- TreeInfo info =null;
- for(int max = alist.size(),i=0;i<max;i++){
- info = (TreeInfo)alist.get(i);
- //define elements of array
- contents.append("Tree[");
- contents.append(i);
- contents.append("]=\"");
- contents.append(info.getNodeId());
- contents.append("|");
- contents.append(info.getParentId());
- contents.append("|");
- contents.append(info.getNodeName());
- contents.append("|");
- contents.append(info.getUrl());
- contents.append("\";");
- }
- contents.append("//-->");
- return contents.toString();
- }
- public static void main(String[]args){
- List alist = TreeUtil.retrieveNodeInfos();
- // TreeInfo info = null;
- // for(Iterator i = c.iterator();i.hasNext();){
- // info = (TreeInfo)i.next();
- // System.out.println("*****" + info.getNodeName());
- // }
- System.out.println(TreeUtil.createTreeInfo(alist));
- }
- }
3)编写标签类
- InitTreeTag.java
- package com.diegoyun.web.taglibs;
- import com.diegoyun.web.tree.TreeUtil;
- import javax.servlet.jsp.tagext.TagSupport;
- import javax.servlet.jsp.JspException;
- import java.io.IOException;
- /**
- * @author Diegoyun
- * @version 1.0
- */
- public class InitTreeTag extends TagSupport{
- public int doEndTag() throws JspException {
- StringBuffer tree = new StringBuffer();
- tree.append("<script type=\"text/javascript\">\n");
- tree.append(TreeUtil.createTreeInfo(TreeUtil.retrieveNodeInfos()));
- tree.append("</script>\n");
- try{
- pageContext.getOut().println(tree.toString());
- }catch(IOException ioe){
- ioe.printStackTrace();
- }
- return super.doEndTag();
- }
- }
- ShowTreeTag.java :
- package com.diegoyun.web.taglibs;
- import javax.servlet.jsp.tagext.TagSupport;
- import javax.servlet.jsp.JspException;
- import java.io.IOException;
- /**
- * @author Diegoyun
- * @version 1.0
- */
- public class ShowTreeTag extends TagSupport{
- public int doEndTag() throws JspException {
- StringBuffer buffer = showTree();
- try {
- pageContext.getOut().println(buffer.toString());
- }
- catch (IOException ioe) {
- ioe.printStackTrace();
- }
- return super.doEndTag();
- }
- private StringBuffer showTree(){
- StringBuffer sb = new StringBuffer();
- sb.append("<div class=\"tree\">\n");
- sb.append("<script type=\"text/javascript\">\n");
- sb.append("<!--\n");
- sb.append("createTree(Tree,1,7);\n");
- sb.append("//-->\n");
- sb.append("</script>\n");
- sb.append("</div>\n");
- return sb;
- }
- }
标签的tld如下:
- <?xml version="1.0" encoding="ISO-8859-1" ?>
- <!DOCTYPE taglib
- PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
- "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
- <taglib>
- <tlib-version>1.0</tlib-version>
- <jsp-version>1.2</jsp-version>
- <short-name>tree</short-name>
- <!--initTreeTag-->
- <tag>
- <name>init</name>
- <tag-class>com.diegoyun.web.taglibs.InitTreeTag</tag-class>
- <body-content>empty</body-content>
- </tag>
- <!--ShowTreeTag-->
- <tag>
- <name>show</name>
- <tag-class>com.diegoyun.web.taglibs.ShowTreeTag</tag-class>
- <body-content>empty</body-content>
- </tag>
- </taglib>
4)建立web过程,编写jsp进行测试。
index.jsp如下:
- <%@ page language="java"%>
- <%@ taglib uri="/WEB-INF/tlds/tree.tld" prefix="tree"%>
- <html>
- <head>
- <title>Tree example</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <link rel="StyleSheet" href="tree.css" type="text/css">
- <script type="text/javascript" src="tree.js"></script>
- <tree:init/>
- </head>
- <body>
- <b>Tree example :</b><br /><br />
- <tree:show/>
- <br /><br />
- </body>
- </html>
发表评论
-
birt db2 查不到结果集 报错
2011-09-07 15:22 4090在Eclipse 里预览时报这个错误。就是因为没有值,rs.n ... -
birt db2 查不到结果集 报错
2011-09-07 15:20 2837根据条件没有查询到结果,就是结果集是0的情况。错误信息:The ... -
WEB前端开发规范文档
2010-12-10 23:38 890规范目的为提高团队协 ... -
DOM Core常用
2010-12-10 23:34 929DOM Core常用部分:DOM方法 ... -
springgraph有没有人用过?
2010-12-04 23:04 1635有没有人用springgraph做过类似搜搜华尔兹、或者明星关 ... -
DHTMLX Tree中文开发指导
2010-11-14 22:35 1054DHTMLX Tree中文开发指导 2009年05月02日 ... -
在b/s开发中经常用到的javaScript技术
2010-11-13 04:32 833在b/s开发中经常用到 ... -
SWFUpload说明文档
2010-10-28 16:25 1260SWFUpload 中文文档地址是:http:// ... -
properties文件的Eclipse插件
2010-10-13 12:01 784一个不错的编写properties文件的Eclipse插件(p ... -
dhtmlxtree文档翻译(转)
2010-10-12 23:01 911页面上初始化树 <div id="treeBo ... -
开源菜单树dhtmlxTree
2010-10-12 22:52 17851. 搭建环境: 在jsp或者html页面中引用 ... -
DhtmlxTree控件实现右键菜单的方法
2010-10-12 22:51 1598免费版的dhtmlxTree不支持右键菜单dhtmlxMenu ... -
利用DhtmlXtree实现展现,修改,添加,删除,移动功能一棵树上实现,iframe的单个滑动条显示,包含在iframe中树节点中文内容过长问题解决
2010-10-12 22:43 3289利用DhtmlXtree实现展现,修改,添加,删除,移动功 ... -
dhtmlxTree开发指导
2010-10-12 18:33 1311dhtmlxTree开发指导 专业版1.6下载地址(CSDN ... -
控制textarea文本长度,并限制输入字数(带统计显示)
2010-09-28 15:26 1959TopstatInput 调用方法 statInput ... -
【转】 JOFC2 - Java API for Open Flash Chart Version-2
2010-09-17 15:47 2238【转】 JOFC2 - Java API for Open ...
相关推荐
在这个场景下,"js动态树型结构 树型菜单"指的是使用JavaScript实现的可以动态加载、展示和操作的树状菜单系统。 树型结构是一种数据表示形式,由节点和边组成,每个节点可以有零个或多个子节点。在JavaScript中,...
这个压缩包"基于Java的实例源码-JSP树型菜单 DTree.zip"包含了一个使用Java技术构建的JSP树型菜单应用。这个菜单系统被称为DTree,它在Web应用程序中常用于展示层次结构的数据,例如目录结构、组织架构或者多级分类...
在本主题中,我们将深入探讨如何使用DTree.java来实现一个树型菜单。DTree是一个流行的JavaScript库,用于在JSP页面上构建可交互的树形结构,常用于网站导航或数据展示。 首先,DTree.js是这个树型菜单的核心脚本...
在这个场景中,`dtree.js`文件很可能就是实现树型菜单功能的JavaScript代码。这个脚本可能包含了构建树形结构、点击节点展开/折叠、异步加载子节点以及刷新菜单等功能。 `dtree.css`文件则是样式表,用于定义树型...
this.RecursiveTree1.DataTextField("菜单配置","Menu_ID", "Menu_ParentID", "Menu_Name", "Menu_Url", "Menu_Name","",""); 具体重载方法 说明 添加引用后,控件名.点 自行查看... //这里改写成你的数据库链接.. ...
文件列表中包含了 `dtree.css` 和 `css.css`,这些可能是用来设置树型菜单样式的CSS文件。例如,它们可能会定义菜单的层次感、展开/折叠图标、颜色等。`dtree.js` 可能是一个JavaScript文件,用于实现菜单的交互功能...
Java源码中的JSP树型菜单DTree是一个经典的应用,常用于构建Web应用程序中的层级结构展示,如组织架构、文件目录或导航菜单等。DTree是基于JavaScript和JSP技术实现的,它通过动态加载和交互来展示树状数据结构。 1...
"基于Java+JSP树型菜单 DTree源码文件"提供了一种解决方案,它利用Java和JSP技术来创建动态的、交互式的树形菜单。下面我们将深入探讨这个主题。 Java是一种广泛使用的后端编程语言,具有跨平台的特性,常用于...
在网页设计和开发中,树型菜单是一种常见且实用的用户界面元素,它能有效地组织和展示层次结构的数据。JS树(JavaScript Tree)是利用JavaScript编程语言实现的动态树形菜单,具有交互性强、可扩展性好等特点。本文...
在无限树形菜单的场景中,dTree能够处理大量数据并生成可无限扩展的节点结构,这对于组织和展示层次分明的数据非常有用。 要实现动态的无限树形菜单,首先需要在HTML中创建一个容器元素,然后通过JavaScript或...
本文将详细介绍如何利用`Dtree.js`在Java环境中构建动态的、交互式的树型菜单,以及这个组件的一些关键特性。 首先,`Dtree.js`是一个轻量级的JavaScript库,它提供了丰富的API和可自定义的选项,使得开发者能够...
JavaScript作为前端开发的主要语言,可以用来动态生成和操作DOM元素,实现树型菜单的动态效果。`dtree`脚本利用JavaScript的事件监听、DOM操作等特性,实现了菜单的交互功能。 4. **节点图片切换**: 这个脚本的一个...
### JavaScript + DOM 树型菜单类详解 #### 一、概述 在Web开发中,树形菜单是非常常见的一种导航结构,它可以清晰地展示出层级关系,帮助用户更好地理解和导航网站内容。本文将详细介绍一个基于JavaScript和DOM...
在"JavaScript代码配合struts构成一个树型菜单的例子"中,Struts作为一个MVC(Model-View-Controller)框架,负责处理服务器端的业务逻辑和数据管理。而JavaScript作为客户端脚本语言,主要处理用户交互和页面动态...
1. **dtree(动态树)**:dtree是一种动态生成的JavaScript树形控件,允许用户交互地展开和折叠节点。它基于HTML和CSS,通常使用DOM操作来创建和管理树结构。用户可以通过点击节点进行展开和收缩,还可以添加、删除...
例如,我们可以使用以下代码来生成树型菜单: d = new dTree('d'); d.add(0,-1,'菜单'); d.add(1,0,'报表查询','example01.html'); d.add(2,1,'月报','example01.html'); d.add(3,1,'季报','example01.html'); d....
在提供的文件名`JSP与树型菜单--diegoyun`中,可能包含了一个示例JSP页面和一个用于生成树形菜单的JavaScript库,可以作为学习和实践这个过程的参考。 总结来说,利用JSP和Access数据库生成目录树,能够实现数据的...
为了快速生成树型目录,我们需要实现以下关键功能: 1. **递归构建**:从根节点开始,递归地为每个子节点创建新的对象,并将它们添加到父节点的子节点列表中。 2. **数据绑定**:将后台获取的扁平化数据结构转换为...