`

java 树形结构设计(七) Struts + Hibernate

    博客分类:
  • JAVA
阅读更多

step 11、构建 树形结构类

 

java 代码
  1. /**  
  2.  * 地理信息数结构显示  
  3.  */  
  4. package com.winchannel.common.tree;   
  5.   
  6. import java.util.ArrayList;   
  7. import java.util.List;   
  8.   
  9. /**  
  10.  * @author huguoqing  
  11.  *  
  12.  */  
  13. public class GeographyTreeViewManager {   
  14.   
  15.     public String strTreeStylePath;   
  16.     protected boolean bVerticalLine;   
  17.     protected GeographyTreeItem root;   
  18.     protected List childList;   
  19.        
  20.     public GeographyTreeViewManager()   
  21.     {   
  22.         strTreeStylePath = "/images/treeview/treeview_default/";   
  23.         bVerticalLine = true;   
  24.         root = null;   
  25.         childList = new ArrayList();   
  26.         root = new GeographyTreeItem(null);   
  27.         root.setDisplayChildren(true);   
  28.     }   
  29.   
  30.     public GeographyTreeViewManager(String strRoot)   
  31.     {   
  32.         strTreeStylePath = "/images/treeview/treeview_default/";   
  33.         bVerticalLine = true;   
  34.         root = null;   
  35.         childList = new ArrayList();   
  36.         root = new GeographyTreeItem(strRoot);   
  37.         root.setDisplayChildren(true);   
  38.     }   
  39.   
  40.     public GeographyTreeViewManager(GeographyTreeItem root)   
  41.     {   
  42.         strTreeStylePath = "/images/treeview/treeview_default/";   
  43.         bVerticalLine = true;   
  44.         this.root = null;   
  45.         childList = new ArrayList();   
  46.         this.root = root;   
  47.         root.setDisplayChildren(true);   
  48.     }   
  49.     /**  
  50.      * 设置树结构样式及图标存放路径  
  51.      * @param strPath  
  52.      */  
  53.     public void setTreeStylePath(String strPath)   
  54.     {   
  55.         strTreeStylePath = strPath;   
  56.     }   
  57.     /**  
  58.      * 获取树结构样式及图标存放路径  
  59.      * @return  
  60.      */  
  61.     public String getTreeStylePath()   
  62.     {   
  63.         return strTreeStylePath;   
  64.     }   
  65.     /**  
  66.      *   
  67.      * @param bLine  
  68.      */  
  69.     public void setVerticalLine(boolean bLine)   
  70.     {   
  71.         bVerticalLine = bLine;   
  72.     }   
  73.     /**  
  74.      *   
  75.      * @return boolean  
  76.      */  
  77.     public boolean getVerticalLine()   
  78.     {   
  79.         return bVerticalLine;   
  80.     }   
  81.     /**  
  82.      *   
  83.      * @return   
  84.      */  
  85.     public GeographyTreeItem getRoot()   
  86.     {   
  87.         return root;   
  88.     }   
  89.   
  90.     public void addItem(GeographyTreeItem item)   
  91.     {   
  92.         root.addChild(item);   
  93.     }   
  94.   
  95.     public String getScript()   
  96.     {   
  97.         StringBuffer stHTML = new StringBuffer(10000);   
  98.         stHTML.append("<!--   TreeView component -->/\r/\n");   
  99.         stHTML.append("<LINK href=\"" + strTreeStylePath + "treeview.css\" rel=stylesheet>/\r/\n");   
  100.         stHTML.append("/\r/\n");   
  101.         stHTML.append("<SCRIPT language=JavaScript>/\r/\n");   
  102.         stHTML.append("《!--/\r/\n");   
  103.         stHTML.append("var treeview_ob_tb, treeview_ob_url, treeview_selected_node_id;/\r/\n");   
  104.         stHTML.append("function treeview_ob_wk(os, url) {/\r/\n");   
  105.         stHTML.append("/\tvar ot = os.parentNode.nextSibling.firstChild.nextSibling;/\r/\n");   
  106.         stHTML.append("/\tvar lensrc = (os.src.length - 8);/\r/\n");   
  107.         stHTML.append("/\tvar s = os.src.substr(lensrc, 8);/\r/\n");   
  108.         stHTML.append("/\tif (s == /\"inus.gif/\") {/\r/\n");   
  109.         stHTML.append("/\t/\tot.style.display = /\"none/\";/\r/\n");   
  110.         stHTML.append("/\t/\tos.src = /\"" + strTreeStylePath + "plusik.gif/\";/\r/\n");   
  111.         stHTML.append("/\t}/\r/\n");   
  112.         stHTML.append("/\tif (s == /\"usik.gif/\") {/\r/\n");   
  113.         stHTML.append("/\t/\tot.style.display = /\"block/\";/\r/\n");   
  114.         stHTML.append("/\t/\tos.src = /\"" + strTreeStylePath + "minus.gif/\";/\r/\n");   
  115.         stHTML.append("/\t/\tif (url != /\"/\") {/\r/\n");   
  116.         stHTML.append("/\t/\t/\tvar s = os.parentNode.nextSibling.firstChild.nextSibling.innerText;/\r/\n");   
  117.         stHTML.append("/\t/\t/\tif (s != /\"正读取数据,请稍候 .../\") {/\r/\n");   
  118.         stHTML.append("/\t/\t/\t/\treturn;/\r/\n");   
  119.         stHTML.append("/\t/\t/\t}/\r/\n");   
  120.         stHTML.append("/\t/\t/\ttreeview_ob_url = url;/\r/\n");   
  121.         stHTML.append("/\t/\t/\ttreeview_ob_tb = os;/\r/\n");   
  122.         stHTML.append("            oDownload.startDownload(treeview_ob_url, treeview_ob_tm);/\r/\n");   
  123.         stHTML.append("/\t/\t/\t//window.setTimeout(/\"treeview_ob_tm()/\", 100);/\r/\n");   
  124.         stHTML.append("/\t/\t}/\r/\n");   
  125.         stHTML.append("/\t}/\r/\n");   
  126.         stHTML.append("/\tif (s == /\"ik_l.gif/\") {/\r/\n");   
  127.         stHTML.append("/\t/\tot.style.display = /\"block/\";/\r/\n");   
  128.         stHTML.append("/\t/\tos.src = /\"" + strTreeStylePath + "minus_l.gif/\";/\r/\n");   
  129.         stHTML.append("/\t/\tif (url != /\"/\") {/\r/\n");   
  130.         stHTML.append("/\t/\t/\tvar s = os.parentNode.nextSibling.firstChild.nextSibling.innerText;/\r/\n");   
  131.         stHTML.append("/\t/\t/\tif (s != /\"正读取数据,请稍候 .../\") {/\r/\n");   
  132.         stHTML.append("/\t/\t/\t/\treturn;/\r/\n");   
  133.         stHTML.append("/\t/\t/\t}/\r/\n");   
  134.         stHTML.append("/\t/\t/\ttreeview_ob_url = url;/\r/\n");   
  135.         stHTML.append("/\t/\t/\ttreeview_ob_tb = os;/\r/\n");   
  136.         stHTML.append("            oDownload.startDownload(treeview_ob_url, treeview_ob_tm);/\r/\n");   
  137.         stHTML.append("/\t/\t/\t//window.setTimeout(/\"treeview_ob_tm()/\", 100);/\r/\n");   
  138.         stHTML.append("/\t/\t}/\r/\n");   
  139.         stHTML.append("/\t}/\r/\n");   
  140.         stHTML.append("/\tif (s == /\"us_l.gif/\") {/\r/\n");   
  141.         stHTML.append("/\t/\tot.style.display = /\"none/\";/\r/\n");   
  142.         stHTML.append("/\t/\tos.src = /\"" + strTreeStylePath + "plusik_l.gif/\";/\r/\n");   
  143.         stHTML.append("/\t}/\r/\n");   
  144.         stHTML.append("}/\r/\n");   
  145.         stHTML.append("/\r/\n");   
  146.         stHTML.append("function treeview_ob_tm(s) {/\r/\n");   
  147.         stHTML.append("/\t//var xmlhttp = new ActiveXObject(/\"Microsoft.XMLHTTP/\");/\r/\n");   
  148.         stHTML.append("/\t//xmlhttp.open(/\"GET/\", treeview_ob_url, false);/\r/\n");   
  149.         stHTML.append("/\t//xmlhttp.send(/\"/\");/\r/\n");   
  150.         stHTML.append("/\t//treeview_ob_tb.parentNode.nextSibling.firstChild.nextSibling.outerHTML = xmlhttp.responseText;/\r/\n");   
  151.         stHTML.append("/\ttreeview_ob_tb.parentNode.nextSibling.firstChild.nextSibling.outerHTML = s;/\r/\n");   
  152.         stHTML.append("}/\r/\n");   
  153.         stHTML.append("/\r/\n");   
  154.         stHTML.append("function treeview_ob_ft(os) {/\r/\n");   
  155.            
  156.         //stHTML.append("/\talert(/\"柴外/\");/\r/\n");   
  157.            
  158.         stHTML.append("/\tif (typeof op != /\"undefined/\") {/\r/\n");   
  159.         stHTML.append("/\t/\top.style.backgroundColor = bg;/\r/\n");   
  160.         stHTML.append("/\t/\top.style.border = /\"none/\";/\r/\n");   
  161.         stHTML.append("    }/\r/\n");   
  162.         stHTML.append("/\tbg = os.style.backgroundColor;/\r/\n");   
  163.         stHTML.append("/\tos.style.backgroundColor = /\"ccddee/\";/\r/\n");   
  164.         stHTML.append("/\tos.style.border = /\"0px solid #666666/\";/\r/\n");   
  165.         stHTML.append("/\ttreeview_selected_node_id = os.id;/\r/\n");   
  166.         stHTML.append("/\top = os;/\r/\n");   
  167.         stHTML.append("}/\r/\n");   
  168.         stHTML.append("/\r/\n");   
  169.         stHTML.append("function treeview_ob_modify(os) {/\r/\n");   
  170.         stHTML.append("/\ttreeview_ob_ft(os);/\r/\n");   
  171.         stHTML.append("/\tif(os == null || os.value == '')/\r/\n");   
  172.         stHTML.append("/\t{/\r/\n");   
  173.         stHTML.append("/\t/\treturn;/\r/\n");   
  174.         stHTML.append("/\t}/\r/\n");   
  175.         stHTML.append("/\t_edit();/\r/\n");   
  176.         stHTML.append("}/\r/\n");   
  177.         stHTML.append("/\r/\n");   
  178.         stHTML.append("function treeview_ob_os(e){/\r/\n");   
  179.         stHTML.append("/\tvar os = e.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.firstChild.firstChild;/\r/\n");   
  180.         stHTML.append("/\tif (os != null) {/\r/\n");   
  181.         stHTML.append("/\tif ((typeof os != /\"undefined/\") && (os.tagName == /\"IMG/\")) {/\r/\n");   
  182.         stHTML.append("/\t/\tvar lensrc = (os.src.length - 8);/\r/\n");   
  183.         stHTML.append("/\t/\tvar s = os.src.substr(lensrc, 8);/\r/\n");   
  184.         stHTML.append("/\t/\tif ((s == /\"inus.gif/\") || (s == /\"usik.gif/\") || (s == /\"us_l.gif/\") || (s == /\"ik_l.gif/\")) {/\r/\n");   
  185.         stHTML.append("/\t/\t/\te.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.firstChild.firstChild.click();/\r/\n");   
  186.         stHTML.append("/\t/\t}/\r/\n");   
  187.         stHTML.append("/\t}/\r/\n");   
  188.         stHTML.append("/\telse {/\r/\n");   
  189.         stHTML.append("/\t/\ttreeview_ob_os(e.parentNode);/\r/\n");   
  190.         stHTML.append("/\t}/\r/\n");   
  191.         stHTML.append("}}/\r/\n");   
  192.         stHTML.append("/\r/\n");   
  193.         stHTML.append("//--》/\r/\n");   
  194.         stHTML.append("</SCRIPT>/\r/\n");   
  195.         return stHTML.toString();   
  196.     }   
  197.   
  198.     public String getRootHTML()   
  199.     {   
  200.         StringBuffer stHTML = new StringBuffer(10000);   
  201.         stHTML.append(root.getHTML(strTreeStylePath, bVerticalLine));   
  202.         stHTML.append("<!-- End Of TreeView-->/\r/\n");   
  203.         return stHTML.toString();   
  204.     }   
  205.   
  206.     public String getHTML()   
  207.     {   
  208.         StringBuffer stHTML = new StringBuffer(10000);   
  209.         stHTML.append(getScript());   
  210.         stHTML.append(getRootHTML());   
  211.         return stHTML.toString();   
  212.     }   
  213.   
  214.     public static void main(String argv[])   
  215.     {   
  216.         GeographyTreeViewManager tvm = new GeographyTreeViewManager();   
  217.         GeographyTreeItem item = new GeographyTreeItem("a1");   
  218.         item.addChild(new GeographyTreeItem("a1_1"));   
  219.         item.addChild(new GeographyTreeItem("a1_2"));   
  220.         item.addChild(new GeographyTreeItem("a1_3"));   
  221.         item.addChild(new GeographyTreeItem("a1_4"));   
  222.         item.addChild(new GeographyTreeItem("a1_5"));   
  223.         GeographyTreeItem item2 = new GeographyTreeItem("a2");   
  224.         GeographyTreeItem item2_1 = new GeographyTreeItem("a2_1");   
  225.         item2_1.addChild(new GeographyTreeItem("a2_1_1"));   
  226.         item2.addChild(item2_1);   
  227.         item2.addChild(new GeographyTreeItem("a2_2"));   
  228.         tvm.addItem(item);   
  229.         tvm.addItem(item2);   
  230.         System.out.println(tvm.getHTML());   
  231.     }   
  232.   
  233. }   
分享到:
评论

相关推荐

    struts+hibernate树形菜单

    3. **获取树形数据**:在服务层(Service层),使用Hibernate的HQL(Hibernate查询语言)或SQL查询语句,检索所有菜单,并按照父ID进行排序,构建出树形结构。可以使用递归方法或者预加载子菜单的方式来实现。 4. *...

    java+Struts+Hibernate实现的无限级树菜单

    前端通常使用JavaScript库(如jQuery、Bootstrap Treeview、AngularJS等)来呈现树形结构。这些库提供了方便的API来动态加载和操作树节点。在本项目中,可能会利用JSP页面结合JavaScript来渲染树形菜单。 6. **...

    Struts+Hibernate+Javascript 实现人无限级分类树形菜单

    Struts+Hibernate+Javascript 实现人无限级分类树...主要是用到了Struts+Hibernate+JSTL1.1和自定义标签,树形菜单节点用 JavaScript控制显示,菜单结构由数据库中的字段区分,测试数据是通过TestMain.java插入数据库的

    extjs+spring+struts+hibernate

    **ExtJS** 是一个用于构建桌面和移动Web应用程序的JavaScript库,提供了丰富的组件库,如表格、图表、表单、树形结构等,以及强大的数据管理和布局系统。它的使用可以让开发者创建出具有现代UI设计的复杂Web应用。 ...

    struts2+spring+hibernate+easyui管理框架

    Struts2+Spring+Hibernate+EasyUI 是一个经典的Java Web开发框架组合,广泛应用于企业级应用的构建。这个管理系统利用这些技术的特性,提供了一种高效、稳定且易于维护的解决方案。 **Struts2** 是一个强大的MVC...

    spring+struts2+hibernate+json+dtree+mysql实现的无限级联树(全)

    5. **dTree插件**:dTree是一款基于JavaScript的可折叠树形菜单组件,用于在网页上显示层次结构的数据。在本项目中,前端可能利用dTree来展示从服务器获取的JSON数据,实现动态的、可交互的无限级联树视图。 6. **...

    extjs+struts+hibernate+spring(物流管理系统)-part3

    【标题】"extjs+struts+hibernate+spring(物流管理系统)-part3" 提供的是一个基于Java技术栈的物流管理系统实现,主要利用了ExtJS作为前端框架,Struts作为MVC框架,Hibernate作为ORM工具,以及Spring作为整体应用的...

    图书管理系统(struts+hibernate+spring+ext)130221.zip

    在图书管理系统中,Ext用于构建用户界面,包括表格、树形结构、表单等,通过Ajax技术与后台进行异步通信,提供流畅的用户体验。Ext的组件化开发方式使得前端代码结构清晰,易于维护和扩展。 这四个框架的结合使用,...

    struts+hibernate+spring+ext

    ExtJS 是一个用于构建富客户端(Rich Internet Applications,RIA)的JavaScript库,它提供了一系列组件,如表格、树形结构、窗口、菜单等,用于创建复杂的、交互性强的Web界面。ExtJS 使用 MVC 架构,并且有强大的...

    权限管理struts2+spring+hibernate easyui

    它提供了大量的预定义样式和组件,如表格、树形结构、对话框等,帮助开发者快速创建美观且响应式的界面。在权限管理系统的视图层,EasyUI可以帮助展示用户权限、角色分配等信息,提供友好的用户交互体验。 这个系统...

    Struts+Spring+Hibernate+ExtJs毕业系统

    它的组件包括表格、表单、树形结构、面板、图表等,能实现复杂的布局和数据展示。 在"Struts+Spring+Hibernate+ExtJs毕业系统"中,Struts 负责接收和处理用户请求,Spring 管理业务对象和事务,Hibernate 处理...

    图书管理系统(struts+hibernate+spring+ext)130221.rar

    本资源"图书管理系统(struts+hibernate+spring+ext)130221.rar"提供了一个完整的基于Java Web的图书管理系统实现,采用经典的SSH(Struts、Hibernate、Spring)框架和EXT前端技术,旨在帮助计算机专业的学生进行毕业...

    Spring+Struts+hibernate+Extjs的客户关系管理系统源代码

    在CRM系统中,它提供了丰富的UI组件,如表格、表单、树形结构等,使得界面更加直观和交互性强。通过Ajax技术,ExtJS实现了页面数据的异步加载,提升了用户体验。 该CRM系统可能包含以下主要功能模块: 1. 客户管理...

    dtree树 struts1+hibernate+dtree

    至于"treeTest"这个文件,可能是项目中的测试用例或者包含了一个简单的树形结构的示例,用于验证dtree的正确显示和操作功能。在实际开发中,测试是非常重要的环节,确保各个部分的功能正常运行并能适应各种情况。 ...

    图书管理系统(struts+hibernate+spring+ext)101毕业设计—(包含完整源码可运行).rar

    Ext JS是一个用于构建富客户端Web应用的JavaScript库,提供了丰富的UI组件,如表格、树形结构、表单等。在本系统中,Ext被用来构建用户友好的界面,提供直观的交互体验,例如图书列表展示、搜索功能、借阅操作等。 ...

    Struts+Spring+Hibernate+ExtJs学生学籍系统毕业设计

    Struts+Spring+Hibernate+ExtJs学生学籍系统毕业设计是一个综合性的项目,它整合了四个关键的技术框架,用于构建高效、稳定且易于维护的Web应用程序。这些技术分别是: 1. **Struts**:这是一个基于MVC(Model-View...

    Struts2+Spring3+Hibernate4+Maven+EasyUI

    Struts2+Spring3+Hibernate4+Maven+EasyUI 是一个常见的Java Web开发组合,它们各自扮演着关键的角色,构建了一个高效、模块化的应用程序架构。这个组合在企业级应用中广泛使用,尤其是在数据管理、业务逻辑处理和...

    JSP源码 图书管理系统(struts+hibernate+spring+ext).zip

    《JSP源码 图书管理系统(struts+hibernate+spring+ext)》是一个基于Java技术的开源图书管理系统,它整合了四大主流框架——Struts、Hibernate、Spring以及Ext,构建了一个高效、灵活且功能丰富的后台管理平台。...

Global site tag (gtag.js) - Google Analytics