版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java zTree 的异步加载demo示例最近需要使用树形展示权限,所以研究了一下Java Tree,其实java中有不少Tree展示,具体有如下几种: Tree的几种开源组件:1.dtree 2.ztree(国内的,api全中文,我用这个)3.JTree4.dhtmlxTree(国外的,种类齐全),网址为:#以后是我找的还不错的Tree组件,还有很多!具体使用方式请参考zTreeAPI或zTree Demo(1)编写数据库脚本添加数据(2)定义一个基本权限类:Competence.java查看文本copy to clipboard打印?1. public class C
2、ompetence 2. private int id; / 编号 3. private int pId; / 父节点 4. private int isParent; / 是否父节点 &
3、#160;5. private String name; / 节点名称 6. private int open; / 是否打开 public class Competence private int id; / 编号private int pId;/ 父节点private int isParent;/ 是否父节点pri
4、vate String name;/ 节点名称private int open;/ 是否打开查看文本copy to clipboard打印?1. / 此处省略 get,set方法 / 此处省略 get,set方法查看文本copy to clipboard打印?1. (3)创建BaseDao.java联接数据库查看文本copy to clipboard打印?1. package com.demo.test; 2. 3. import java.sql.Connect
5、ion; 4. import java.sql.DriverManager; 5. import java.sql.PreparedStatement; 6. import java.sql.ResultSet; 7. import java.sql.SQLException; 8. import java.sql.Statement; 9. 10. /* 11. *&
6、#160;连接数据源 12. * author 小奎 13. */ 14. public class BaseDao 15. static Connection conn; / 创建联接 16. PreparedStatement st; /
7、160;预执行类 17. ResultSet rs; / 结果集 18. 19. /* 20. * 得到连接 21. * return connnection 22.
8、; */ 23. public static Connection getConnection() 24. try 25. / 加载驱动
9、 26. Class.forName("oracle.jdbc.driver.OracleDriver"); 27. try 28.
10、0; / 创建联接 29. conn = DriverManager.getConnection("jdbc:oracle:thin::1521:orcl", "scott", &qu
11、ot;scott"); 30. System.out.println("- 打开连接 -"); 31. catch (SQLException
12、60;e) 32. System.out.println("- 连接失败 -"); 33. e.printStackTr
13、ace(); 34. 35. catch (ClassNotFoundException e) 36.
14、System.out.println("- 驱动加载失败 -"); 37. e.printStackTrace(); 38. 39. return
15、;conn; 40. 41. 42. /* 43. * 关闭连接对象 44. * param rs 45. * param st 46. &
16、#160; * param conn 47. */ 48. public static void closeConnection(ResultSet rs, Statement st, Connection conn) 49.
17、160; try 50. if (rs != null) 51. rs.close(); 52.
18、 53. if (st != null) 54. st.close()
19、; 55. 56. if (conn != null && !conn.isClosed() 57.
20、160; conn.close(); 58. 59. System.out.println("- 关闭连接 -&quo
21、t;); 60. catch (SQLException e) 61. System.out.println("- 关闭连接失败 -"); 62. &
22、#160; e.printStackTrace(); 63. 64. 65. package com.demo.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStat
23、ement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/* * 连接数据源 * author 小奎 */public class BaseDao static Connection conn; / 创建联接 PreparedStatement st; / 预执行类 ResultSet rs; / 结果集/* * 得到连接 * return connnection */public static Connection getConnection() try / 加载驱动Clas
24、s.forName("oracle.jdbc.driver.OracleDriver");try / 创建联接conn = DriverManager.getConnection("jdbc:oracle:thin::1521:orcl", "scott", "scott");System.out.println("- 打开连接 -"); catch (SQLException e) System.out.println("- 连接失败 -");e.prin
25、tStackTrace(); catch (ClassNotFoundException e) System.out.println("- 驱动加载失败 -");e.printStackTrace();return conn;/* * 关闭连接对象 * param rs * param st * param conn */public static void closeConnection(ResultSet rs, Statement st, Connection conn) try if (rs != null) rs.close();if (st != null) s
26、t.close();if (conn != null && !conn.isClosed() conn.close();System.out.println("- 关闭连接 -"); catch (SQLException e) System.out.println("- 关闭连接失败 -");e.printStackTrace();查看文本copy to clipboard打印?1. (4) 创建测试的类 Test.java 查看文本copy to clipboard打印?1. package com.
27、demo.test; 2. 3. import java.sql.Connection; 4. import java.sql.SQLException; 5. import java.util.ArrayList; 6. import java.util.List; 7. 8. public class Test extends BaseDao &
28、#160; 9. 10. public List<Competence> getAllAuthorize() 11. List<Competence> authorizes = new ArrayList<Competence>(); 12. &
29、#160; Connection conn = getConnection(); / 得到联接 13. try 14. st = conn.prepareStatement(&
30、quot;select * from authorize2 "); 15. rs = st.executeQuery(); / 得到结果集 16. while (rs.
31、next() 17. Competence authorize = new Competence(); 18. auth
32、orize.setId(rs.getInt("id"); 19. authorize.setpId(rs.getInt("pid"); 20.
33、 authorize.setOpen(rs.getInt("open"); 21. authorize.setIsParent(rs.getInt("isParent"); 22.
34、 authorize.setName(rs.getString("name"); 23. / 添加到集合 24.
35、60; authorizes.add(authorize); 25. 26. catch (SQLException e) 27.
36、; System.out.println("- 查询authorize失败 -"); 28. e.printStackTrace(); 29. finally 30.
37、160; closeConnection(rs, st, conn); 31. 32. return authorizes; 33.
38、; 34. 35. /* 36. * 拼接成json类型 37. * return 38. */ 39. public String getJSOND
39、ata() 40. Test d = new Test(); 41. List<Competence> list=d.getAllAuthorize(); 42. StringBuff
40、er json=new StringBuffer(""); 43. String data="" 44. for (int i = 0; i < list.size(); i+)
41、60;45. json.append("id:"+list.get(i).getId()+","); 46. json.append("pId:"+list.get(i).getpId()+",");
42、; 47. json.append("name:""+list.get(i).getName()+"","); 48. if (list.get(i).getIsParent() !=0)
43、 49. json.append("isParent:"+list.get(i).getIsParent()+","); 50. 51.
44、60; if (list.get(i).getOpen() !=0) 52. json.append("open:"+list.get(i).getOpen()+",");
45、53. 54. data=json.substring(0,json.lastIndexOf(",")+"," 55.
46、; json=new StringBuffer(data); 56. 57. data=json.substring(0, json.length()-1)+"" 58.
47、;System.out.println(data); 59. return data; 60. 61. public static void main(String args) 62.
48、; Test demoTest=new Test(); 63. demoTest.getJSONData(); 64. 65. package com.demo.test;import java.sql.Connection;import java.sql.SQLException;import java.util.Ar
49、rayList;import java.util.List;public class Test extends BaseDao public List<Competence> getAllAuthorize() List<Competence> authorizes = new ArrayList<Competence>();Connection conn = getConnection(); / 得到联接try st = conn.prepareStatement("select * from authorize2 ");rs = st
50、.executeQuery(); / 得到结果集while (rs.next() Competence authorize = new Competence();authorize.setId(rs.getInt("id");authorize.setpId(rs.getInt("pid");authorize.setOpen(rs.getInt("open");authorize.setIsParent(rs.getInt("isParent");authorize.setName(rs.getString(&q
51、uot;name");/ 添加到集合authorizes.add(authorize); catch (SQLException e) System.out.println("- 查询authorize失败 -");e.printStackTrace(); finally closeConnection(rs, st, conn);return authorizes;/* * 拼接成json类型 * return */public String getJSONData()Test d = new Test();List<Competence> list
52、=d.getAllAuthorize();StringBuffer json=new StringBuffer("");String data=""for (int i = 0; i < list.size(); i+) json.append("id:"+list.get(i).getId()+",");json.append("pId:"+list.get(i).getpId()+",");json.append("name:""+li
53、st.get(i).getName()+"",");if (list.get(i).getIsParent() !=0) json.append("isParent:"+list.get(i).getIsParent()+",");if (list.get(i).getOpen() !=0) json.append("open:"+list.get(i).getOpen()+",");data=json.substring(0,json.lastIndexOf(","
54、;)+","json=new StringBuffer(data);data=json.substring(0, json.length()-1)+""System.out.println(data);return data;public static void main(String args) Test demoTest=new Test();demoTest.getJSONData();(4) 创建加载zTree 树的html或jsp页面 asyncLoad.html查看文本copy to clipboard打印?1. <!DOCTYPE
55、160;html> 2. <HTML> 3. <HEAD> 4. <TITLE>zTree Demo</TITLE> 5. <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 6. <link rel="stylesheet"
56、; href="./css/demo.css" type="text/css"> 7. <!- 必须文件 zTreeStyle.css、jquery.ztree.core-x.js、jquery-x.min.js -> 8. <link rel="stylesheet" href="./css/zTreeStyle/zTreeStyle.css" type="
57、text/css"> 9. <script type="text/javascript" src="./js/jquery-1.4.4.min.js"></script> 10. <script type="text/javascript" src="./js/jquery.ztree.core-3.5.js"></script> 11. <
58、script language="JavaScript"> 12. var setting = 13. async : 14. enable :&
59、#160;true, / 设置 zTree是否开启<strong>异步</strong>加载模式 15. url : "asyncData/loadData2.jsp", / Ajax 获取数据的 URL 地址 16.
60、 autoParam : "id" / <strong>异步</strong>加载时自动提交父节点属性的参数,假设父节点 node = id:1, name:"test",<strong>异步</strong>加载时,提交参数 zId=1 17.
61、 , 18. data: / 必须使用data 19. simpleData : 20.
62、60; enable : true, 21. idKey : "id", / id编号命名 默认 22. &
63、#160; pIdKey : "pId", / 父id编号命名 默认 23. rootPId : 0 / 用于修正根节点父节点数据,即
64、 pIdKey 指定的属性值 24. 25. , 26. / 回调函数 27.
65、160; callback : 28. onClick : function(event, treeId, treeNode, clickFlag) 29.
66、160; / 判断是否父节点 30. if(!treeNode.isParent) 31.
67、 alert("treeId自动编号:" + treeNode.tId + ", 节点id是:" + treeNode.id + ", 节点文本是:" + treeN); 32.
68、 33. , 34. /捕获<strong>异步</strong>加载出现异常错误的事件回调函数 和 成功的回调函数 35.
69、160; onAsyncError : zTreeOnAsyncError, 36. onAsyncSuccess : function(event, treeId, treeNode, msg) 37.
70、60; 38. 39. 40. 41.
71、;42. / 加载错误提示 43. function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) 44. alert("加载错误:"
72、60;+ XMLHttpRequest); 45. 46. 47. / 过滤函数 48. function filter(treeId, parentNode, childNodes) 49. &
73、#160;if (!childNodes) 50. return null; 51. for ( var i = 0, l = childNodes.length; i < l;&
74、#160;i+) 52. childN = childN.replace(/.n/g, '.'); 53. 54.
75、60; return childNodes; 55. 56. 57. / 渲染 58. $(document).ready(function() 59. $.fn.zTree.init($("#
76、treeDemo"), setting); 60. ); 61. </script> 62. </HEAD> 63. <BODY> 64. <div> 65. <ul id="tre
77、eDemo" class="ztree"></ul> 66. </div> 67. </BODY> 68. </HTML> <!DOCTYPE html><HTML><HEAD><TITLE>zTree Demo</TITLE><meta http-equiv="content-type&qu
78、ot; content="text/html; charset=UTF-8"><link rel="stylesheet" href="./css/demo.css" type="text/css"><!- 必须文件 zTreeStyle.css、jquery.ztree.core-x.js、jquery-x.min.js -><link rel="stylesheet" href="./css/zTreeStyle/zTreeStyle.css&q
79、uot; type="text/css"><script type="text/javascript" src="./js/jquery-1.4.4.min.js"></script><script type="text/javascript" src="./js/jquery.ztree.core-3.5.js"></script><script language="JavaScript">var setti
80、ng = async : enable : true, / 设置 zTree是否开启异步加载模式url : "asyncData/loadData2.jsp", / Ajax 获取数据的 URL 地址autoParam : "id" / 异步加载时自动提交父节点属性的参数,假设父节点 node = id:1, name:"test",异步加载时,提交参数 zId=1,data: / 必须使用data simpleData : enable : true,idKey : "id", / id编号命名 默认pIdKey
81、 : "pId", / 父id编号命名 默认 rootPId : 0/ 用于修正根节点父节点数据,即 pIdKey 指定的属性值,/ 回调函数callback : onClick : function(event, treeId, treeNode, clickFlag) / 判断是否父节点if(!treeNode.isParent)alert("treeId自动编号:" + treeNode.tId + ", 节点id是:" + treeNode.id + ", 节点文本是:" + treeN);
82、,/捕获异步加载出现异常错误的事件回调函数 和 成功的回调函数onAsyncError : zTreeOnAsyncError,onAsyncSuccess : function(event, treeId, treeNode, msg);/ 加载错误提示function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) alert("加载错误:" + XMLHttpRequest);/ 过滤函数function filter(treeId, parentN
83、ode, childNodes) if (!childNodes)return null;for ( var i = 0, l = childNodes.length; i < l; i+) childN = childN.replace(/.n/g, '.');return childNodes;/ 渲染$(document).ready(function() $.fn.zTree.init($("#treeDemo"), setting););</script></HEAD><B
84、ODY><div><ul id="treeDemo" class="ztree"></ul></div></BODY></HTML>(5) 创建一个接收的Servlet,本测试使用jsp代替 loadData.jsp查看文本copy to clipboard打印?1. <% page language="java" import="java.util.*" pageEncoding="utf-8"%> 2. <% page import="com.demo.test.*" %> 3. 4. <% 5.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年国内机械油行业市场深度分析及发展前景及投资机会研究报告
- 2024-2030年可再生纤维行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 2024-2030年共享单车行业市场发展分析及竞争形势与投资发展前景研究报告
- 苏教版数学二年级下册第5单元《分米和毫米》教案
- 苏教版牛津英语五年级上Unit5知识及习题
- 手机淘宝App需求文档PRD
- 苏教版三年级数学万以内的乘法
- 《如是中庸》一生平衡的读后感
- 云栖竹径到灵隐寺徒步方案
- 数据中台产品经理面试指南
- 未注公差的线性和角尺寸一般公差
- 岗南中心幼儿园教师任职任课表
- 手术患者呼吸心搏骤停的应急预案
- 小学生行为习惯养成教育案例__王书勤
- 房屋建设安全技术交底大全
- 洗发水工艺流程(共2页)
- 检测认证销售基本话术
- 通达信公式源码指标软件超级精准买点
- kV永福变电站110kV(梅花站对侧)GIS扩建间隔一二次设备安装施工方案
- SHT3503-2017 交工文件表格全册
- 装箱单(中英文)模板word模板
评论
0/150
提交评论