书签 分享 收藏 举报 版权申诉 / 6

类型JSP树形菜单的实现doc.docx

  • 文档编号:3525997
  • 上传时间:2022-11-23
  • 格式:DOCX
  • 页数:6
  • 大小:17KB

 显然,如果用动态的脚本来初始化菜单数组(asp,jsp均可),那就可以很方便的实现动态的树型菜单了。

2。

jsp动态实现

  分以下步骤实现动态的树型菜单:

  1)在数据库建tree_info表,有nodeId,parentNodeId,nodeName,nodeUrl四个字段,来存储节点信息。

  2)编写java类,用于从数据库找出节点信息,并且生成javascript脚本。

  3)编写tag类。

用于封装逻辑,简化jsp的开发。

  4)建一个web程序进行测试。

3。

详细过程

  1)在数据库建表,脚本如下:

  CREATETABLE`test`.`tree_info`(

  `node_id`INTEGERUNSIGNEDNOTNULLDEFAULT-1,

  `parent_id`INTEGERUNSIGNEDNOTNULLDEFAULT-1,

  `node_name`VARCHAR(45)NOTNULL,

  `ref_url`VARCHAR(45)NOTNULL,

  PRIMARYKEY(`node_id`)

 )

 我使用mysql数据库,如果脚本细节有出入,请自行修改

   按照上面的dTree示例插入数据

  2)编写TreeInfo.java,这个类用于封装节点信息

    packagecom.diegoyun.web.tree;

  

  publicclassTreeInfo{

   privateintnodeId=-1;//nodeid

   privateintparentId=-1;//parentId

   privateStringnodeName=null;//nodename

   privateStringurl=null;//urlreferences

   publicintgetNodeId(){

    returnnodeId;

   }

   publicvoidsetNodeId(intnodeId){

    this.nodeId=nodeId;

   }

   publicintgetParentId(){

    returnparentId;

   }

   publicvoidsetParentId(intparentId){

    this.parentId=parentId;

   }

   publicStringgetNodeName(){

    returnnodeName;

   }

   publicvoidsetNodeName(StringnodeName){

    this.nodeName=nodeName;

   }

   publicStringgetUrl(){

    returnurl;

   }

   publicvoidsetUrl(Stringurl){

    this.url=url;

   }

  }

  编写TreeUtil.java,用于从数据库得到节点信息,封装到TreeInfo对象,并生成javascript脚本

  TreeUtil.java

  packagecom.diegoyun.web.tree;

  importjava.util.Collection;

  importjava.util.ArrayList;

  importjava.util.Iterator;

  importjava.util.List;

  importjava.sql.PreparedStatement;

  importjava.sql.ResultSet;

  importjava.sql.Connection;

  importjava.sql.DriverManager;

  

  publicclassTreeUtil{

   publicstaticListretrieveNodeInfos(){

    Listcoll=newArrayList();

    StringdriverName="com.mysql.jdbc.Driver";

    Stringhost="localhost";

    Stringport=":

3306";

    StringserverID="test";

    StringuserName="root";

    StringuserPwd="root";

    Stringurl="jdbc:

mysql:

//"+host+port+"/"+serverID;

    Connectionconn=null;

    PreparedStatementps=null;

    ResultSetrs=null;

    try{

     Class.forName(driverName).newInstance();

     conn=DriverManager.getConnection(url,userName,userPwd);

     Stringsql="select*fromtree_info";

     ps=conn.prepareStatement(sql);

     rs=ps.executeQuery();

     TreeInfoinfo=null;

     while(rs!

=null&&rs.next()){

      info=newTreeInfo();

      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(Exceptione){

     System.out.println(e);

    }

    returncoll;

   }

   publicstaticStringcreateTreeInfo(Listalist){

    StringBuffercontents=newStringBuffer();

    contents.append("

--\n");

    contents.append("varTree=newArray;");//createaarrayinjavascript

    TreeInfoinfo=null;

    for(intmax=alist.size(),i=0;i

     info=(TreeInfo)alist.get(i);

     //defineelementsofarray

     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("docment.writer(Tree);");

    contents.append("//-->");

    returncontents.toString();

   }

   publicstaticvoidmain(String[]args){

    Listalist=TreeUtil.retrieveNodeInfos();

  //       TreeInfoinfo=null;

  //       for(Iteratori=c.iterator();i.hasNext();){

  //           info=(TreeInfo)i.next();

  //           System.out.println("*****"+info.getNodeName());

  //       }

    System.out.println(TreeUtil.createTreeInfo(alist));

   }

  }

 3)编写标签类

 InitTreeTag.java

 packagecom.diegoyun.web.taglibs;

 importcom.diegoyun.web.tree.TreeUtil;

 importjavax.servlet.jsp.tagext.TagSupport;

 importjavax.servlet.jsp.JspException;

 importjava.io.IOException;

 

 publicclassInitTreeTagextendsTagSupport{

  publicintdoEndTag()throwsJspException{

   StringBuffertree=newStringBuffer();

   tree.append("\n");

   tree.append(TreeUtil.createTreeInfo(TreeUtil.retrieveNodeInfos()));

   tree.append("\n");

   try{

    pageContext.getOut().println(tree.toString());

   }catch(IOExceptionioe){

    ioe.printStackTrace();

   }

   returnsuper.doEndTag();

  }

 }

 ShowTreeTag.java:

 packagecom.diegoyun.web.taglibs;

 importjavax.servlet.jsp.tagext.TagSupport;

 importjavax.servlet.jsp.JspException;

 importjava.io.IOException;

 

 publicclassShowTreeTagextendsTagSupport{

  publicintdoEndTag()throwsJspException{

   StringBufferbuffer=showTree();

   try{

    pageContext.getOut().println(buffer.toString());

   }

   catch(IOExceptionioe){

    ioe.printStackTrace();

   }

   returnsuper.doEndTag();

  }

  privateStringBuffershowTree(){

   StringBuffersb=newStringBuffer();

   sb.append("\n");

   sb.append("\n");

   sb.append("

--\n");

   sb.append("createTree(Tree);\n");

   sb.append("//-->\n");

   sb.append("\n");

   sb.append("

\n");

   returnsb;

  }  

 }

 标签的tld如下:

 

xmlversion="1.0"encoding="ISO-8859-1"?

>

 

DOCTYPEtaglib

  PUBLIC"-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.2//EN"

  "

 

 1.0

 1.2

 tree

 

--initTreeTag-->

 

  init

  com.diegoyun.web.taglibs.InitTreeTag

  empty

 

 

--ShowTreeTag-->

 

  show

  com.diegoyun.web.taglibs.ShowTreeTag

  empty

 

 

 4)建立web过程,编写jsp进行测试。

 index.jsp如下:

 <%@pagelanguage="java"%>

 <%@tagliburi="/WEB-INF/tlds/tree.tld"prefix="tree"%>

 

 

  Treeexample

  

  

  

  

init/>

 

 

 Treeexample:



 

show/>

 

  

 

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
JSP 树形 菜单 实现 doc
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:JSP树形菜单的实现doc.docx
链接地址:https://www.bdocx.com/doc/3525997.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开