使用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

struts-menu-el.tld

menu-config.xml

放到 /WEB-INF/ 目录

struts-menu-2.3.jar

velocity-1.4.jar

velocity-tools-view-1.0.jar

commons-lang-2.0.jar

/WEB-INF/lib/ 目录

globalMacros.vm放/src/ 目录

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

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. }   
    1.   
    2.     Dynamic, Database-driven Menu   
    3.     "stylesheet" type="text/css" media="all"  
    4.         href="/styles/menuExpandable.css"/>" />   
    5.     "text/javascript"  
    6.         src="/scripts/menuExpandable.js"/>">   
    7.     "stylesheet" type="text/css" media="all"  
    8.         href="/styles/xtree.css"/>" />   
    9.     "text/javascript"  
    10.         src="/scripts/xtree.js"/>">   
    11.     "stylesheet" type="text/css" media="all"  
    12.         href="/styles/global.css"/>" />   
    13.     "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.        
    26.   
    27.   
    28.     class="dynamicMenu">   
    29.         "ListMenu" repository="repository">   
    30.             "DatabaseMenu"/>   
    31.             "StandaloneMenu"/>   
    32.            
    33.     
      
  •     class="dynamicMenu tree">   
  •     "text/javascript">   
  •         "Velocity" config="/templates/xtree.html"  
  •             repository="repository">   
  •           "menu" items="${repository.topMenus}">   
  •             "${menu.name}"/>   
  •              
  •            
  •        
  •     
  •   
  •   
  • java 代码

    你可能感兴趣的:(Struts,CSS,velocity,JavaScript,C#)