`
守望者
  • 浏览: 54564 次
  • 来自: ...
社区版块
存档分类
最新评论

使用struts-menu制作树型菜单实例

阅读更多
sql 代码
  1. 创建数据库表   
  2. CREATE TABLE `menu_item` (   
  3.   `id` bigint(20) NOT NULL default '0',   
  4.   `parent_name` varchar(30) default NULL,   
  5.   `namevarchar(30) default NULL,   
  6.   `title` varchar(30) default NULL,   
  7.   `description` varchar(50) default NULL,   
  8.   `location` varchar(255) default NULL,   
  9.   `target` varchar(10) default NULL,   
  10.   `onclick` varchar(100) default NULL,   
  11.   `onmouseover` varchar(100) default NULL,   
  12.   `onmouseout` varchar(100) default NULL,   
  13.   `image` varchar(50) default NULL,   
  14.   `altImage` varchar(30) default NULL,   
  15.   `tooltip` varchar(100) default NULL,   
  16.   `roles` varchar(100) default NULL,   
  17.   `page` varchar(255) default NULL,   
  18.   `width` varchar(5) default NULL,   
  19.   `height` varchar(5) default NULL,   
  20.   `forwardvarchar(50) default NULL,   
  21.   `actionvarchar(50) default NULL,   
  22.   PRIMARY KEY  (`id`)   
  23. );   
  24. INSERT INTO menu_item (id, name, title) VALUES (1,'DatabaseMenu','Database Menu');   
  25. INSERT INTO menu_item (id, parent_name, name, title, location) VALUES (2,'DatabaseMenu','Yahoo','Yahoo Mail','http://mail.yahoo.com');   
  26. INSERT INTO menu_item (id, parent_name, name, title, location) VALUES(3,'DatabaseMenu','JavaBlogs','JavaBlogs','http://javablogs.com');   
  27. INSERT INTO menu_item (id, name, title, location) VALUES (4,'StandaloneMenu','Standalone Menu','http://raibledesigns.com');   

struts-menu.tld<o:p></o:p>

struts-menu-el.tld<o:p></o:p>

menu-config.xml

放到 /WEB-INF/ 目录

struts-menu-2.3.jar<o:p></o:p>

velocity-1.4.jar<o:p></o:p>

velocity-tools-view-1.0.jar

<o:p>commons-lang-2.0.jar</o:p>

/WEB-INF/lib/ 目录

globalMacros.vm放/src/ 目录

以上大多文件在下载的struts-menu里带了有

<o:p></o:p><o:p>
java 代码
  1.   
  2. public class FindAction extends Action {   
  3.   
  4.     public ActionForward execute(   
  5.         ActionMapping mapping,   
  6.         ActionForm form,   
  7.         HttpServletRequest request,   
  8.         HttpServletResponse response) {   
  9.         //创建   
  10.         Session session=HibernateSessionFactory.getSession();   
  11.         //创建事务   
  12.         Transaction tx=session.beginTransaction();   
  13.         //创建对话   
  14.         Query query=session.createQuery("FROM MenuItem m order by id");   
  15.         List list=query.list();   
  16.         //事务提交   
  17.         tx.commit();   
  18.         if(list.size()<0)   
  19.             return mapping.getInputForward();   
  20.         MenuRepository repository = new MenuRepository();   
  21.         HttpSession httpsession=(HttpSession)request.getSession();   
  22.         ServletContext application=(ServletContext)httpsession.getServletContext();   
  23.         MenuRepository defaultRepository = (MenuRepository)application.getAttribute(MenuRepository.MENU_REPOSITORY_KEY);   
  24.         repository.setDisplayers(defaultRepository.getDisplayers());   
  25.         for (int i=0; i < list.size(); i++) {   
  26.             MenuComponent mc = new MenuComponent();   
  27.             MenuItem mi=(MenuItem) list.get(i);   
  28.             String name = mi.getName();   
  29.             mc.setName(name);   
  30.             String parent = (String) mi.getParentName();   
  31.             System.out.println(name + ", parent is: " + parent);   
  32.             if (parent != null) {   
  33.                 MenuComponent parentMenu = repository.getMenu(parent);   
  34.                 if (parentMenu == null) {   
  35.                     System.out.println("parentMenu '" + parent + "' doesn't exist!");   
  36.                     // create a temporary parentMenu   
  37.                     parentMenu = new MenuComponent();   
  38.                     parentMenu.setName(parent);   
  39.                     repository.addMenu(parentMenu);   
  40.                 }   
  41.                 mc.setParent(parentMenu);   
  42.             }   
  43.             String title = (String)mi.getTitle();   
  44.             mc.setTitle(title);   
  45.             String location = (String) mi.getLocation();   
  46.             mc.setLocation(location);   
  47.             repository.addMenu(mc);   
  48.         }   
  49.         request.setAttribute("repository", repository);   
  50.         return mapping.findForward("okGo");   
  51.     }   
  52. }   
</o:p>
  • <!---->
    1. <head>   
    2.     <title>Dynamic, Database-driven Menu</title>   
    3.     <link rel="stylesheet" type="text/css" media="all"  
    4.         href="<c:url value="/styles/menuExpandable.css"/>" />   
    5.     <script type="text/javascript"  
    6.         src="<c:url value="/scripts/menuExpandable.js"/>"></script>   
    7.     <link rel="stylesheet" type="text/css" media="all"  
    8.         href="<c:url value="/styles/xtree.css"/>" />   
    9.     <script type="text/javascript"  
    10.         src="<c:url value="/scripts/xtree.js"/>"></script>   
    11.     <link rel="stylesheet" type="text/css" media="all"  
    12.         href="<c:url value="/styles/global.css"/>" />   
    13.     <script type="text/javascript">   
    14.         /* Function for showing and hiding elements that use 'display:none' to hide */  
    15.         function toggleDisplay(targetId) {   
    16.             if (document.getElementById) {   
    17.                 target = document.getElementById(targetId);   
    18.                 if (target.style.display == "none"){   
    19.                     target.style.display = "";   
    20.                 } else {   
    21.                     target.style.display = "none";   
    22.                 }   
    23.             }   
    24.         }   
    25.     </script>   
    26. </head>   
    27. <body>   
    28.     <div class="dynamicMenu">   
    29.         <menu:useMenuDisplayer name="ListMenu" repository="repository">   
    30.             <menu:displayMenu name="DatabaseMenu"/>   
    31.             <menu:displayMenu name="StandaloneMenu"/>   
    32.         </menu:useMenuDisplayer>   
    33.     </div>   
    34.     <div class="dynamicMenu tree">   
    35.     <script type="text/javascript">   
    36.         <menu:useMenuDisplayer name="Velocity" config="/templates/xtree.html"  
    37.             repository="repository">   
    38.           <c:forEach var="menu" items="${repository.topMenus}">   
    39.             <menu-el:displayMenu name="${menu.name}"/>   
    40.           </c:forEach>   
    41.         </menu:useMenuDisplayer>   
    42.     </script>   
    43.     </div>   
    44. </body>  
    java 代码
  • 分享到:
    评论

    相关推荐

      基于java的开发源码-JSP树型菜单 DTree.zip

      基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree.zip 基于java的开发源码-JSP树型菜单 DTree...

      dtree、xtree和jquery-treeview构建树型菜单

      对于已经使用jQuery的项目,`jquery-treeview`能快速地将现有列表转换为美观的树型菜单,而无需学习新的库或API。 在实际应用中,选择哪个插件主要取决于项目的需求和开发环境。如果你追求性能和轻量级,`dtree`...

      活字格-菜单和树型图.zip

      "活字格-菜单和树型图.zip"这个压缩包文件包含了用于构建和自定义菜单以及树型图的资源和组件。活字格,可能是一个低代码开发平台,旨在简化应用开发过程,允许用户通过图形化界面创建和设计功能丰富的应用程序。在...

      速动画教程系列第14集

      3. **使用Struts-menu JSP标签**:在JSP页面中,使用Struts-menu提供的标签来渲染树型菜单。例如,`&lt;struts-menu:menu&gt;`标签是菜单的根节点,而`&lt;struts-menu:item&gt;`标签用于定义菜单项。 4. **动态生成菜单**:...

      基于Java的实例开发源码-JSP树型菜单 DTree.zip

      在本资源"基于Java的实例开发源码-JSP树型菜单 DTree.zip"中,我们主要探讨的是如何在Java JSP应用中实现一种交互式的树型菜单。这种菜单通常用于组织和展示层次结构的数据,例如网站导航、文件系统或者数据库结构。...

      基于Java的实例源码-JSP树型菜单 DTree.zip

      这个压缩包"基于Java的实例源码-JSP树型菜单 DTree.zip"包含了一个使用Java技术构建的JSP树型菜单应用。这个菜单系统被称为DTree,它在Web应用程序中常用于展示层次结构的数据,例如目录结构、组织架构或者多级分类...

      react-reacttreemenuReact的无状态树型菜单组件

      `react-tree-menu`是一个专门为React设计的无状态树型菜单组件,它可以帮助开发者轻松地构建可展开/折叠的层级结构菜单。这个组件强调代码的简洁性和性能,通过无状态(stateless)组件实现,这使得维护和扩展更加...

      商业编程-源码-树型控件实现数据库的访问》配套代码.zip

      在Windows应用程序中,如基于.NET Framework或MFC的项目,开发者可以使用TreeView控件来创建这样的视图。 数据库访问,是指程序与数据库进行交互的过程,包括查询、插入、更新和删除数据。在商业编程中,这通常是...

      超酷多种风格树型菜单效果

      如压缩包中的“dhtml-tree-menu-200”,这可能是一个JavaScript库,专门用于创建动态的、交互式的树型菜单。JavaScript允许动态地创建和修改DOM元素,实现菜单的展开和折叠,同时还可以处理用户的交互事件。CSS则...

      基于Java的源码-JSP树型菜单 DTree.zip

      【标题解析】 "基于Java的源码-JSP树型菜单 DTree.zip" 这个标题揭示了我们正在处理一个与Java编程相关的项目,具体来说是JSP(Java ...对于希望深入理解或使用DTree树型菜单的开发者来说,这些都是不可或缺的知识。

      php ajax树型菜单 Tree菜单实例.rar

      "php ajax树型菜单 Tree菜单实例" 提供了一种使用PHP和AJAX技术实现的动态树形菜单解决方案,特别适合于内容管理系统(CMS)中,以便用户能够便捷地浏览和操作多层次的页面或功能。 PHP是一种广泛使用的服务器端...

      精美的ajax树型菜单

      【标题】"精美的ajax树型菜单" 描述了一个利用AJAX技术实现的交互式树状菜单,这种菜单设计能够提供动态加载数据的功能,提升用户体验。在网页设计中,树型菜单通常用于组织大量层级结构的数据,使得用户可以便捷地...

      VC 资源管理器-无限级树型菜单.rar

      一个比较早的代码了,VC 资源管理器-无限级树形菜单,本程序所用压缩函数库在子目录zipfunc中,在zipfunc目录下,有两个子目录分别包含Release版和Debug版的zipfunc.lib,两者都是共享链接库编译生成.同样,主程序的链接...

      简单好用的JS树型菜单

      在实际应用中,我们可以使用现有的库或框架,如jQuery Treeview、Angular Material的Tree组件、Vue的Element UI等,它们已经封装了上述功能,使开发者能更快速地构建树型菜单。 总结来说,“简单好用的JS树型菜单”...

      java 树型菜单建立

      本文将详细讲解如何使用Java来构建一个动态的、可交互的树型菜单,包括从数据库获取数据、创建树节点、实现添加和删除节点的功能。 首先,我们需要了解Java中的树型组件。在Java Swing库中,`JTree`是用于展示树型...

      经典的js树型菜单 javascript脚本

      在这个“经典的js树型菜单”示例中,我们将深入探讨如何使用JavaScript来创建一个可展开和折叠的树状菜单。 树型菜单在网站导航中非常常见,它可以帮助用户组织和浏览大量的层次结构信息。通过JavaScript,我们可以...

      ASP.NET树型菜单生成实例.rar

      在这个实例中,"ASP.NET树型菜单生成实例.rar" 文件提供了一个由刘旭和康厚文编写的解决方案,该方案利用ASP.NET 3.0框架,并结合Ajax技术,实现了动态的、可折叠和展开的树形菜单。 首先,我们来看ASP.NET中的树形...

      C#树型菜单控件实例

      "C#树型菜单控件实例"指的是使用C#编程实现的一种交互式UI组件,它呈现为一个多级结构,类似于文件系统的目录结构,用户可以通过展开和折叠节点来浏览和选择数据。 树型菜单控件(TreeView)是Windows Forms和WPF...

      无限级可刷新Js树型菜单

      无限级可刷新Js树型菜单是一种常见的前端交互设计,它在网页应用中广泛用于展示具有层级关系的数据,如目录结构、组织架构、导航菜单等。这种菜单的特点是它可以无限制地展开子节点,同时支持动态刷新,即在用户操作...

      多个简单漂亮的树型菜单JS代码

      在网页设计中,树型菜单是一种常见的用户界面元素,它以层级结构展示数据,使得信息组织更为清晰,便于用户浏览和导航。本文将详细介绍“多个简单漂亮的树型菜单JS代码”这一主题,以及如何利用提供的资源进行应用。...

    Global site tag (gtag.js) - Google Analytics