1.导入  dtree文件    dtree.css   img文件夹   dtree.js

2. 建立对应 的数据库      1      父ID     name    id

3    建立连接类     mysql   例子

package com.dtree.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.opensymphony.xwork2.ActionSupport; public class ConnectionManager { private static final String driver ="org.gjt.mm.mysql.Driver";
private static final String url = "jdbc:mysql://localhost:3306/yuqing?useUnicode=true&characterEncoding=utf8";
private static final String username="root";
private static final String userpwd="zfn"; public static Connection getConnection(){ Connection conn=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,username,userpwd);
}catch(Exception ex){
ex.printStackTrace();
}
return conn;
}
public static void closeConnection(Connection conn){
try{
if(conn!=null && (!conn.isClosed())){
conn.close();
}
}catch(SQLException ex){
ex.printStackTrace();
}
}
public static void closeResultSet(ResultSet res){
try{
if(res!=null){
res.close();
res=null;
}
}catch(SQLException ex){
ex.printStackTrace();
}
}
public static void closeStatement(PreparedStatement stmt){
try{
if(stmt!=null){
stmt.close();
}
}catch(SQLException ex){
ex.printStackTrace();
}
}
}

4. 实现类

package com.dtree.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; public class OrganizationService { private Connection conn;
private PreparedStatement titleQuery;
private ResultSet results; public List getOrganization(){
List list = new ArrayList(); try {
conn=ConnectionManager.getConnection();
String sql="select * from treetest";
titleQuery=conn.prepareStatement(sql);
results=titleQuery.executeQuery(); while(results.next()){
Organization org1 = new Organization();
org1.setId(results.getInt("id"));
org1.setParentId(results.getInt("parentId"));
org1.setName(results.getString("name")); list.add(org1);
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{ ConnectionManager.closeResultSet(results);
ConnectionManager.closeStatement(titleQuery);
ConnectionManager.closeConnection(conn);
} return list; } public int insertUser1(String name) {
int num=0;
try {
conn=ConnectionManager.getConnection();
String sql="insert into treetest (parentId,name,pid)values(0,?,1)";
titleQuery=conn.prepareStatement(sql);
titleQuery.setString(1,name); num=titleQuery.executeUpdate(); } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ConnectionManager.closeResultSet(results);
ConnectionManager.closeStatement(titleQuery);
ConnectionManager.closeConnection(conn);
} return num;
} public int insertUser2(int parentId,String name) {
int num=0;
try {
conn=ConnectionManager.getConnection();
String sql="insert into treetest (parentId,name,pid)values(?,?,2)";
titleQuery=conn.prepareStatement(sql);
titleQuery.setInt(1,parentId);
titleQuery.setString(2,name); num=titleQuery.executeUpdate(); } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ConnectionManager.closeResultSet(results);
ConnectionManager.closeStatement(titleQuery);
ConnectionManager.closeConnection(conn);
} return num;
}
public List getOrganization1(){
List list = new ArrayList(); try {
conn=ConnectionManager.getConnection();
String sql="select * from treetest where pid=1";
titleQuery=conn.prepareStatement(sql);
results=titleQuery.executeQuery(); while(results.next()){
Organization org1 = new Organization();
org1.setId(results.getInt("id"));
org1.setParentId(results.getInt("parentId"));
org1.setName(results.getString("name")); list.add(org1);
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{ ConnectionManager.closeResultSet(results);
ConnectionManager.closeStatement(titleQuery);
ConnectionManager.closeConnection(conn);
} return list;
}
}

5. 实体类

package com.dtree.test;

public class Organization {
private int id; private String name; private int parentId; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getParentId() {
return parentId;
} public void setParentId(int parentId) {
this.parentId = parentId;
}
}

6 action

package com.dtree.test;
import java.util.ArrayList;
import java.util.List; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class DtreeAction extends ActionSupport { List list = new ArrayList();
private String name = null;
private String name2 = null;
private int parentId;
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getName2() {
return name2;
}
public void setName2(String name2) {
this.name2 = name2;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
OrganizationService service = new OrganizationService();
list = service.getOrganization(); return SUCCESS;
} public String insertname1() {
OrganizationService service = new OrganizationService();
System.out.print(name);
int num=service.insertUser1(name); return SUCCESS;
} public String insertname2() {
OrganizationService service = new OrganizationService();
System.out.println(parentId);
System.out.println(name);
int num=service.insertUser2(parentId, name2); return SUCCESS;
} public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}

6 struts  xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<package name="dtree" namespace="/dtree" extends="struts-default">
<action name="dtree" class="com.dtree.test.DtreeAction">
<result name="success">/dtree.jsp</result>
</action> <action name="insertname1" class="com.dtree.test.DtreeAction" method="insertname1">
<result name="success">/dtree.jsp</result>
</action> <action name="insertname2" class="com.dtree.test.DtreeAction" method="insertname2">
<result name="success">/dtree.jsp</result>
</action> </package> </struts>

7 显示树形菜单  jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="<%=basePath%>"> <title>树形结构例子</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="StyleSheet" href="css/dtree.css" type="text/css" />
<script type="text/javascript" src="script/dtree.js"></script>
</head> <body>
<div class="dtree">
<script type="text/javascript">
d = new dTree('d');
//构造根节点
d.add(0,-1,'学校人员分布'); <s:iterator value="list">
d.add(<s:property value="id"/>,<s:property value="parentId"/>,'<s:property value="name"/>','example01.html');
</s:iterator>
document.write(d);
</script> </div>
</body>
</html>

8  动态增加 树形菜单列的jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.dtree.test.*" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<% &nbsp;%>
<html>
&nbsp; <head>&nbsp;
&nbsp; &nbsp; <title></title>
&nbsp; &nbsp; <script type="text/javascript">
&nbsp; &nbsp; &nbsp; &nbsp; function sbmt(){
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.fm.action="dtree/insertname1.action";
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fm.submit();
&nbsp; &nbsp; &nbsp; &nbsp;}
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; function sbmt2(){
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.fm.action="dtree/insertname2.action";
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fm.submit();
&nbsp; &nbsp; &nbsp; &nbsp;}
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</script> &nbsp; </head>
&nbsp;&nbsp;
&nbsp; <body> <form name="fm" method="post" action="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <p>m &gt; <br></p>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <p>&nbsp;</p>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <p>&nbsp;</p>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <p>&nbsp;</p>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <p>&nbsp;</p>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <table width="846" height="63" border="0">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th width="118" scope="col"><div align="center">插入一级名称</div></th>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th width="217" scope="col"><div align="center">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="name">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></th>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th width="185" scope="col">&nbsp;</th>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th width="239" scope="col"><div align="center">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" onClick="return sbmt()" name="Submit" value="提交">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></th>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <th width="65" scope="col">&nbsp;</th>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><div align="center">插入二级名称</div></td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><div align="center">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="name2">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><select name="parentId" >
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<%
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OrganizationService o=new OrganizationService();
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;List list=o.getOrganization1();
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for(int i=0;i<list.size();i++){
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Organization o1=(Organization)list.get(i);
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <option value=<%=o1.getId() %> selected><%=o1.getName() %></option>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<%} %>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </select> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><div align="center">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" onClick="return sbmt2<span style="white-space:pre"> </span>()" name="Submit2" value="提交">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td>&nbsp;</td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><div align="center">插入三级名称</div></td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><div align="center">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="name3">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><select name="select2">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </select></td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td><div align="center">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" name="Submit3" value="提交">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td>&nbsp;</td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </table>
&nbsp; &nbsp; &nbsp; &nbsp; </form> &nbsp; </body>
</html>

http://blog.csdn.net/zhangfuning1986/article/details/7362109

dtree实现动态加载树形菜单,动态插入树形菜单的更多相关文章

  1. 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形网格动态加载

    jQuery EasyUI 树形菜单 - 树形网格动态加载 动态加载树形网格有助于从服务器上加载部分的行数据,避免加载大型数据的长时间等待.本教程将向您展示如何创建带有动态加载特性的树形网格(Tree ...

  2. vue路由动态加载

    注意:是动态加载不是动态路由 解决的问题: 动态配置菜单栏的路由参数--实现菜单级的权限控制 问题成因: 在vue实例化的时候vuex.vue-router 就需要加载完毕,无法使用异步的方式从服务器 ...

  3. c#实现动态加载Dll(转)

    c#实现动态加载Dll 分类: .net2009-12-28 13:54 3652人阅读 评论(1) 收藏 举报 dllc#assemblynullexceptionclass 原理如下: 1.利用反 ...

  4. 动态加载js和css

    开发过程中经常需要动态加载js和css,今天特意总结了一下常用的方法. 1.动态加载js 方法一:动态加载js文件 // 动态加载js脚本文件 function loadScript(url) { v ...

  5. CS.动态加载DLL.动态生成.运行代码.BS.AutoFac管理实现类

    以英雄联盟为例.界面上经常有Load....xxxx.dll.一般都是加载子系统.比如装备系统.英雄系统等.在实际开发中很多项目非常庞大.都会分割成独立子解决方案开发.后期就需要加载回来.一般都是利用 ...

  6. flash的动态加载技术

    这里所说的动态加载技术, 主要是指代码模块(可以是swc也可以是swf)的动态加载.即主swf在运行的时候, 可以根据需要动态加载所需的代码模块. 为了讨论方便, 下面所说的代码模块都用swc表示,用 ...

  7. 第一百一十八节,JavaScript,动态加载脚本和样式

    JavaScript,动态加载脚本和样式 一动态脚本 当网站需求变大,脚本的需求也逐步变大.我们就不得不引入太多的JS脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本. ...

  8. 动态加载js,css(项目中需要的)

    最近做的一个项目需要加入百度统计,大家都知道百度统计在页面引用就是一坨js,实现方法很简单引用到页面就ok了. 那么问题来了,虽然我不知道百度统计的原理是啥,我的测试服引用了百度统计,百度统计账号里面 ...

  9. 动态加载js css 插件

    简介 动态加载js,css在现在以及将来肯定是很重要的.目前来看前端代码编写的业务量已经远远超过后端编写的.随着对用户体验度逐渐增强,前端业务复杂,加载速度变得很慢很慢.为了解决这个问题,目前出现的两 ...

  10. 通过Activity动态加载Fragment创建主界面构架

    在做项目中,需要建立一个主界面框架,尝试过使用ViewPager ,后来又换成了使用Activity动态加载Fragment实现选项卡的效果.总结一下方便以后回顾. 先给出总体效果: 要实现上述效果, ...

随机推荐

  1. 一步一步学习IdentityServer4 (3)自定登录界面并实现业务登录操作

    IdentityServer4 相对 IdentityServer3 在界面上要简单一些,拷贝demo基本就能搞定,做样式修改就行了 之前的文章已经有登录Idr4服务端操作了,新建了一个自己的站点 L ...

  2. 【PAT】1018 锤子剪刀布 (20)(20 分)

    1018 锤子剪刀布 (20)(20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算 ...

  3. 程序设计实习MOOC / 程序设计与算法(二)第二周测验(2018春季)

    递归算法: 1:全排列 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < ' ...

  4. js 格式化时间,可定义格式

    var format = function (time, format) { var t = new Date(time); var tf = function (i) { return (i < ...

  5. java 代码中设置 临时 环境变量

    System.setProperty("hadoop.home.dir", "D:\\software\\software_install\\dev_install\\h ...

  6. redis在Linux下的远程连接

    1.redis在Linux下的远程连接: $ redis-cli -h host -p port -a password 如何连接到主机为 127.0.0.1,端口为 6379 ,密码为 mypass ...

  7. JAVA单向链表实现

    JAVA单向链表实现 单向链表 链表和数组一样是一种最常用的线性数据结构,两者各有优缺点.数组我们知道是在内存上的一块连续的空间构成,所以其元素访问可以通过下标进行,随机访问速度很快,但数组也有其缺点 ...

  8. poj1273(Edmonds-Karp)

    这道题可以算是例题了. 求解最大流,采用EK算法,用广搜查找增广路径,找到后更新网络流矩阵,循环执行直至找不到增广路径为止.这里要小心的是重复边的情况. 程序也是参照了网上的模版来写的,有一些技巧.如 ...

  9. flask使用flask_sqlalchemy连接数据库(python2.7)

    1.出现编码问题 解决方法: #连接数据库时出现编码问题,需要pip install mysql-connector-python,并且数据库配置修改为 import mysql.connector ...

  10. BZOJ.2194.快速傅立叶之二(FFT 卷积)

    题目链接 \(Descripiton\) 给定\(A[\ ],B[\ ]\),求\[C[k]=\sum_{i=k}^{n-1}A[i]*B[i-k]\ (0\leq k<n)\] \(Solut ...