当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java进阶

Tree图全功略


  Tree型结构,Tree图不管在哪个领域都是一个比较吃香的东东。在自己的网站或项目中有一个tree型图或tree型结构的权限(或角色,和数据库设计相关),总能有那么一点点成就感。^_^

     这篇文章就把我自己在这方面应用的实践整理一下拿出来。为您详细介绍了在Tree有关方面应用的完整实践。

   实例如下:

  

   左边的tree图的实现方式是通过javascript+jsp实现。如果是为了实现逻辑上的tree结构的维护,采用的是xml解决方案。

   现在这里说一下,javascript+jsp的表现层的实现。这里的javascript并不是唯一的选择,可以在网上下到类似的javascript(毕竟是共享的嘛。:) ).点这里可以下载相关代码.

   其中的test.htm是javascript例子代码:

  

  

   

  

   "d.add(3,0,'技术与方案','admin.php?module=article&action=catelist&cid=3','','_blank');

   "中的"3"是当前节点,"0"是父节点,"技术与方案"是tree上显示的节点名,"admin.php?......"指向的url."_blank"是指向的窗口。

   从上可以看出,这个javascript已经把tree图实现的大部分工作已经做好了。只要我们传入对应的数据就可以了。

   首先是数据库结构。从上可以看出,有节点名,节点id,父节点id,节点url,节点target,还可以有个节点状态(比如是激活或休眠,很常用用一种用法),当然还可以有其它属性,那就要根据项目的需要了。其实只要抓住一点,有唯一节点id和唯一父节点id就可以了(面向对象)就可以了。

   有了数据库结构,然后要实现tree图就是根据一定的限制(比如权限,最后对应为tree结构的子集(当然也必须是完整的tree结构))取出符合条件并且完整的tree结构的数据(我采用的解决方法是把权限对应的节点的上溯父节点都取出来保证tree结构的完整性,具体可以看java&xml心得(三)).

   假设我们已经完成了上述的工作,那么要实现tree图的代码应该如下:

   .........

  

  

   Untitled document.lt;/title><P>   <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><P>   <link rel="stylesheet" href="images/cj_styles.css" type="text/css"><P>   <P>   </head><P>   <P>   <body bgcolor="#FFFFFF" text="#000000" leftmargin="2" topmargin="0"><P>   <P>   <P>   <P>   <P>   <P>   <P>   </body><P>   </html><P>   这样就实现了动态tree图。<P>   上面的这种实现是用jsp+javascript实现。也可以用xml+xsl来实现。不是必要,只是可以让新手也了解一下关于xml的应用。:)<P>   比如我们已经成功把数据库的数据导出成xml格式。代码如下:<P>   <?xml version="1.0" ?><P>   <?xml:stylesheet type="text/xsl" href="ttx2.xsl" ?><P>   <table name="cm_tree"><P>   <col id="1" label="闆嗗洟鏂伴椈" parentid="29" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="2" label="闆嗗洟瑕侀椈" parentid="1" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=2"></col><P>   <col id="3" label="缁煎悎淇℃伅" parentid="1" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=3"></col><P>   <col id="4" label="鏀跨瓥娉曡" parentid="29" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="5" label="娉曞緥娉曡" parentid="4" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=5"></col><P>   <col id="7" label="鏀跨瓥鐮旂┒" parentid="4" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=7"></col><P>   <col id="8" label="鐢熶骇缁忚惀" parentid="29" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="9" label="瀹夊叏鐢熶骇" parentid="8" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=9"></col><P>   <col id="10" label="缁忚惀鍔ㄦ€? parentid="8" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=10"></col><P>   <col id="11" label="宸ョ▼寤鸿" parentid="29" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="12" label="鐏數宸ョ▼" parentid="11" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=12"></col><P>   <col id="13" label="姘寸數宸ョ▼" parentid="11" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=13"></col><P>   <col id="14" label="鏍哥數宸ョ▼" parentid="11" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=14"></col><P>   <col id="17" label="鍥介檯鍚堜綔" parentid="29" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="19" label="鍚堜綔鍔ㄦ€? parentid="17" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=19"></col><P>   <col id="20" label="浼佷笟鏂囧寲" parentid="29" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="22" label="绮剧鏂囨槑" parentid="20" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=22"></col><P>   <col id="24" label="鍏朵粬淇℃伅" parentid="29" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="25" label="澶╂皵棰勬姤" parentid="24" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=25"></col><P>   <col id="26" label="浼佷笟鏂囧寲鍔ㄦ€? parentid="20" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=26"></col><P>   <col id="27" label="鏂囧寲娲诲姩" parentid="20" target="_blank" url="/zdtadmin/newsadmin/list.jsp?tree_id=27"></col><P>   <col id="29" label="鍐呭绠$悊" parentid="0" target="_blank" url="/zdtadmin/default.jsp"></col><P>   <col id="31" label="鏍忕洰缁存姢" parentid="0" target="_blank" url="/zdtadmin/treeadmin/tree_edit.jsp"></col><P>   <col i </div> </div> <div class="c_bot_text"><span id="pe100_page_contentpage" class="pagecss"></span></div> <div class="c_bot_text"> <div class="clearbox"></div> </div> <div class="c_bot_text"><font style="color:red">上一篇:</font><a href="/html/18974.html" target="_self">Java 中 this 的使用</a> <font style="color:red">下一篇:</font><a href="/html/18976.html" target="_self">在JAVA中如何实现长时间任务</a></div> <div class="clearbox"></div> <div class="lm_xxlb_title"> <div class="title">相关内容</div> <div class="more"> <a href="/list_213/index.html">[更多] </a> </div> </div> <div class="flm_xxlb_main"> <div class="clearbox"></div> <ul> <li> <div class="tydlmxxlb_title"><a href="/html/67877.html" target="_blank">关于JSP防范SQL注入攻击</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67876.html" target="_blank">用Java设计防病毒的电子邮件程序</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67875.html" target="_blank">您的Java代码安全吗—还是暴露在外?</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67874.html" target="_blank">Java理论与实践: 描绘线程安全性</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67873.html" target="_blank">漫谈Java加密技术(一)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67872.html" target="_blank">J2EE 探索者: 用JAAS 和 JSSE 实现 Java 安全性</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67871.html" target="_blank">漫谈Java加密技术(二)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67870.html" target="_blank">漫谈Java加密技术(三)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67869.html" target="_blank">漫谈Java加密技术(四)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67868.html" target="_blank">谈谈Java加密技术(五)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67867.html" target="_blank">谈谈Java加密技术(六)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67866.html" target="_blank">谈谈Java加密技术(七)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67865.html" target="_blank">Java加密技术(八)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67864.html" target="_blank">Java加密技术(九)</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67862.html" target="_blank">线程中断(interrupt)使用方法</a></div> </li> <li> <div class="tydlmxxlb_title"><a href="/html/67861.html" target="_blank">singleton的几种实现方式</a></div> </li> </ul> <div class="clearbox"></div> </div> </div> <!-- 主体内容结束 --> </div> <div class="main_right_nr"> <div class="main_right_tit">赞助商链接</div> <div class="ad_lmsct"> <script type="text/javascript" src='/IAA/200902/12.js'></script> </div> </div> <div class="clearbox"></div> </div> <span style="display:none;"> <script language="JavaScript" type="text/JavaScript" src="/Common/GetHits.aspx?id=18975"></script> </span> <div class="main"> <div id="bottom_all"> <div id="foot"> <div id="copyright"> 【注意】炫浪网 版权所有,未经书面授权禁止模仿风格或建立镜像网站.如有违反,追究法律责任.<br /> 【声明】本网站部分内容属社区网友发布,本网站仅提供网友交流平台,但有权在本网站范围内引用、发布、<br /> 转载来自社区网友发布的内容。网友发布内容纯属个人行为,与本网站立场无关。本网站对于网友发布的<br /> 内容所引发的版权、署名权的异议及纠纷,不承担任何责任。 粤ICP备<a href="http://www.miibeian.gov.cn">11064832</a>号 公安备案编号:4453023010550 <script src="http://s96.cnzz.com/stat.php?id=372893&web_id=372893" language="JavaScript"></script> </div> </div> </div> </div> </body> </html>