




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JSP树形菜单的实现(转载)(2009-04-20 15:21:03) 转载标签: 杂谈分类: 技术讲解 1。原理简介dtree是一个免费的javascript脚本,只需定义有限的几个参数,就可以做出漂亮的树型菜单。下载目录:/javascripts/tree/以下是dtree的用法示例:1)初始化菜单!-var Tree = new Array;Tree0 = 1|0|Page 1|#;Tree1 = 2|1|Page 1.1|#;Tree2 = 3|1|Page 1.2|#;Tree3 = 4|3|Page 1.2.1|#;2)调用函数显然,如果用动态的脚本来初始化菜单数组(asp,jsp均可),那就可以很方便的实现动态的树型菜单了。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;public class TreeInfo private int nodeId = -1;/node idprivate int parentId = -1;/parentIdprivate String nodeName = null;/node nameprivate String url = null;/url referencespublic 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;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;tryClass.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 javascriptTreeInfo info =null;for(int max = alist.size(),i=0;i);return contents.toString();public static void main(Stringargs)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.javapackage 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;public class InitTreeTag extends TagSupportpublic int doEndTag() throws JspException StringBuffer tree = new StringBuffer();tree.append(n);tree.append(TreeUtil.createTreeInfo(TreeUtil.retrieveNodeInfos();tree.append(n);trypageContext.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;public class ShowTreeTag extends TagSupportpublic 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(n);sb.append(n);sb.ap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 慢性前列腺炎合并性功能障碍患者护理查房
- 阿克苏地区2025-2026学年七年级上学期语文期中模拟试卷
- 安徽省淮南市凤台县2023-2024学年高三下学期高考第一模拟考试(一模)生物试题含参考答案
- 安徽省蚌埠市龙子湖区2023-2024学年高一下学期期末考试思想政治试题及答案
- 2025 年小升初邢台市初一新生分班考试语文试卷(带答案解析)-(人教版)
- 2025 年小升初晋中市初一新生分班考试数学试卷(带答案解析)-(冀教版)
- 湖北省襄阳市樊城区2025年中考适应性考试物理试题
- 社区消防知识培训课件评语
- 统编版2025-2026学年三年级语文上册第七单元检测卷(有答案)
- 甘肃省平凉市第四中学2024-2025学年七年级下学期7月期末数学试题(含部分答案)
- 棬槽沟村道路建设实施方案
- 中国民族史纲要罗佑贤
- JJF(石化)053-2021间隙式湿膜制备器校准规范
- 4.3闭环控制系统的工作过程教学设计-高中通用技术必修《技术与设计2》
- 2023版设备管理体系标准
- 产品设计程序与方法-整理版
- 办公家具供货安装、保障实施及售后服务方案
- 《曼陀罗绘画疗愈-初三减压》PPT
- 企业外包业务安全生产专项检查表(全面)1管理学资料
- 航海英语听力与会话第四版朗读题70篇
- 垃圾中转站设备安全操作规程
评论
0/150
提交评论