`

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

    博客分类:
  • JAVA
阅读更多

step 10、构造 树形结构类

java 代码
  1. /**  
  2.  * 地理信息数结构  
  3.  */  
  4. package com.fzfx88.common.tree;   
  5.   
  6. import java.util.Vector;   
  7.   
  8. /**  
  9.  * @author huguoqing  
  10.  *  
  11.  */  
  12. public class GeographyTreeItem {   
  13.   
  14.     public String strTitle;   
  15.     public String strValue;   
  16.     public String strText;   
  17.     public boolean bDisplayChildren;   
  18.     public String strImg;   
  19.     public boolean bSelected;   
  20.     public boolean bSelectable;   
  21.     public boolean bLoadChildren;   
  22.     public String strChildURL;   
  23.     public Vector vChildren;   
  24.     public GeographyTreeItem parent;   
  25.   
  26.     public GeographyTreeItem(String strValue, String strText, String strTitle)   
  27.     {   
  28.         bDisplayChildren = false;   
  29.         strImg = "";   
  30.         bSelected = false;   
  31.         bSelectable = true;   
  32.         bLoadChildren = true;   
  33.         strChildURL = "";   
  34.         vChildren = new Vector();   
  35.         parent = null;   
  36.         this.strTitle = strTitle;   
  37.         this.strValue = strValue;   
  38.         this.strText = strText;   
  39.     }   
  40.   
  41.     public GeographyTreeItem(String strValue, String strText)   
  42.     {   
  43.         this(strValue, strText, strValue);   
  44.     }   
  45.   
  46.     public GeographyTreeItem(String strValue)   
  47.     {   
  48.         this(strValue, strValue, strValue);   
  49.     }   
  50.   
  51.     public GeographyTreeItem()   
  52.     {   
  53.         this("""""");   
  54.     }   
  55.   
  56.     public void setImage(String strImg)   
  57.     {   
  58.         this.strImg = strImg;   
  59.     }   
  60.   
  61.     public void setDisplayChildren(boolean bDisplay)   
  62.     {   
  63.         bDisplayChildren = bDisplay;   
  64.     }   
  65.   
  66.     public boolean isDisplayChildren()   
  67.     {   
  68.         return bDisplayChildren;   
  69.     }   
  70.   
  71.     public void setSelected(boolean bSelected)   
  72.     {   
  73.         this.bSelected = bSelected;   
  74.     }   
  75.   
  76.     public boolean isSelected()   
  77.     {   
  78.         return bSelected;   
  79.     }   
  80.   
  81.     public void setSelectable(boolean selectable)   
  82.     {   
  83.         bSelectable = selectable;   
  84.     }   
  85.   
  86.     public boolean isSelectable()   
  87.     {   
  88.         return bSelectable;   
  89.     }   
  90.   
  91.     public void addChild(GeographyTreeItem item)   
  92.     {   
  93.         vChildren.addElement(item);   
  94.     }   
  95.   
  96.     public int getCount()   
  97.     {   
  98.         return vChildren.size();   
  99.     }   
  100.   
  101.     public GeographyTreeItem getChild(int index)   
  102.     {   
  103.         if(index >= getCount())   
  104.         {   
  105.             return null;   
  106.         } else  
  107.         {   
  108.             GeographyTreeItem item = (GeographyTreeItem)vChildren.get(index);   
  109.             return item;   
  110.         }   
  111.     }   
  112.   
  113.     public void setLoadChildren(boolean bLoad)   
  114.     {   
  115.         bLoadChildren = bLoad;   
  116.     }   
  117.   
  118.     public boolean isLoadChildren()   
  119.     {   
  120.         return bLoadChildren;   
  121.     }   
  122.   
  123.     public void setURL(String strURL)   
  124.     {   
  125.         strChildURL = strURL;   
  126.     }   
  127.   
  128.     public String getURL()   
  129.     {   
  130.         return strChildURL;   
  131.     }   
  132.   
  133.     public String getHTML(String strPath, boolean bLine)   
  134.     {   
  135.         StringBuffer stHTML = new StringBuffer(1000);   
  136.         if(strText != null)   
  137.         {   
  138.             int nlength = getRealLength(strText);   
  139.             nlength = nlength * 12 + 10;   
  140.             stHTML.append("《TABLE  valign=top width=" + nlength + " cellSpacing=0 cellPadding=0 border=0》\r\n");   
  141.             stHTML.append("  《TR  valign=top  》\r\n");   
  142.             stHTML.append("    《TD vAlign=top width=5》" + strImg + "《/TD》\r\n");   
  143.             stHTML.append("    《TD valign=top class=treeview_ob_td");   
  144.             if(bSelectable)   
  145.                 stHTML.append(" onclick=treeview_ob_ft(this) ondoubleclick=treeview_ob_modify(this)");   
  146.             stHTML.append("  title='" + strTitle + "' value='" + strValue + "' " + (bSelected ? "style=\"background-Color:#ccddee;\"" : "") + "》" + strText + "《/TD》\r\n");   
  147.             stHTML.append("  《/TR》\r\n");   
  148.             stHTML.append("《/TABLE》\r\n");   
  149.         }   
  150.         stHTML.append(getChildHTML(strPath, bLine));   
  151.         return stHTML.toString();   
  152.     }   
  153.   
  154.     public String getChildHTML(String strPath, boolean bLine)   
  155.     {   
  156.         StringBuffer stHTML = new StringBuffer();   
  157.         String strVertical = "";   
  158.         String strVertDisp = "";   
  159.         if(bLine)   
  160.             strVertical = " style=\、"BACKGROUND-IMAGE: url(" + strPath + "vertical.gif)\" ";   
  161.         if(getCount() > 0)   
  162.             if(bLoadChildren || bDisplayChildren)   
  163.             {   
  164.                 stHTML.append("《TABLE valign=top style=\"DISPLAY: " + (bDisplayChildren ? "block" : "none") + "\" cellSpacing=0 cellPadding=0 border=0》\r\n");   
  165.                 for(int i = 0; i < vChildren.size(); i++)   
  166.                 {   
  167.                     GeographyTreeItem item = getChild(i);   
  168.                     strVertDisp = strVertical;   
  169.                     String strImg_tmp = "";   
  170.                     String strURL = "";   
  171.                     if(!item.isLoadChildren())   
  172.                         strURL = item.getURL();   
  173.                     if(item.getCount() > 0)   
  174.                     {   
  175.                         if(item.isDisplayChildren())   
  176.                         {   
  177.                             if(i < vChildren.size() - 1)   
  178.                             {   
  179.                                 strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "minus.gif\" 》";   
  180.                             } else  
  181.                             {   
  182.                                 strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "minus_l.gif\" 》";   
  183.                                 strVertDisp = "";   
  184.                             }   
  185.                         } else  
  186.                         if(i < vChildren.size() - 1)   
  187.                         {   
  188.                             strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "plusik.gif\" 》";   
  189.                         } else  
  190.                         {   
  191.                             strImg_tmp = "《IMG class=treeview_ob_ic onclick=\"treeview_ob_wk(this, '" + strURL + "')\" src=\"" + strPath + "plusik_l.gif\" 》";   
  192.                             strVertDisp = "";   
  193.                         }   
  194.                     } else  
  195.                     {   
  196.                         if(i < vChildren.size() - 1)   
  197.                             strImg_tmp = "《IMG class=treeview_ob_ic src=\/"" + strPath + "hr.gif\" 》";   
  198.                         else  
  199.                             strImg_tmp = "《IMG class=treeview_ob_ic src=\/"" + strPath + "hr_l.gif\" 》";   
  200.                         strVertDisp = "";   
  201.                     }   
  202.                     stHTML.append("  《TR 》\/r\/n");   
  203.                     stHTML.append("    《TD class=treeview_ob_ic " + strVertDisp + " width=1 》 \/r\/n");   
  204.                     stHTML.append("      ").append(strImg_tmp);   
  205.                     stHTML.append("《/TD 》\/r\/n");   
  206.                     stHTML.append("    《TD 》\/r\/n");   
  207.                     stHTML.append(item.getHTML(strPath, bLine));   
  208.                     stHTML.append("    《/TD 》\/r\/n");   
  209.                     stHTML.append("  《/TR 》\/r\/n");   
  210.                 }   
  211.   
  212.                 stHTML.append("《/TABLE》\/r\/n");   
  213.             } else  
  214.             {   
  215.                 stHTML.append("《TABLE style=\"DISPLAY: " + (bDisplayChildren ? "block" : "none") + "\" cellSpacing=0 cellPadding=0 border=0》\r\n");   
  216.                 stHTML.append("  《TR》\/r\/n");   
  217.                 stHTML.append("    《TD class=treeview_ob_td 》正读取数据,请稍候 .../TD》\/r\/n");   
  218.                 stHTML.append("  《/TR》\/r\/n");   
  219.                 stHTML.append("《/TABLE》\/r\/n");   
  220.             }   
  221.         return stHTML.toString();   
  222.     }   
  223.   
  224.     protected int getRealLength(String strText)   
  225.     {   
  226.         int nCount = 0;   
  227.         int nNow = -1;   
  228.         int nLength = strText.length();   
  229.         do  
  230.         {   
  231.             int nStart = strText.indexOf(60, nNow);   
  232.             if(nStart == -1)   
  233.             {   
  234.                 nCount += nLength - nNow - 1;   
  235.                 break;   
  236.             }   
  237.             nCount += nStart - nNow - 1;   
  238.             int nEnd = strText.indexOf(62, nStart);   
  239.             if(nEnd == -1)   
  240.             {   
  241.                 nCount += nLength - nStart - 1;   
  242.                 break;   
  243.             }   
  244.             nNow = nEnd;   
  245.             nCount += 2;   
  246.         } while(true);   
  247.         return nCount;   
  248.     }   
  249.   
  250. }   
 
分享到:
评论

相关推荐

    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