树形菜单的实现.doc_第1页
树形菜单的实现.doc_第2页
树形菜单的实现.doc_第3页
树形菜单的实现.doc_第4页
树形菜单的实现.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论