(1) 需要的类包
struts-menu-2.3.jar log4j-1.2.8.jar velocity-1.4.jar velocity-tools-view-1.0.jar
(2) 配置 WEB-INF/struts-config.xml
<!—作为插件在struts-config.xml中申明-->
<plug-in className="net.sf.navigator.menu.MenuPlugIn"/>
或者
<plug-in className="net.sf.navigator.menu.MenuPlugIn">
<set-property property="menuConfig"
value="/WEB-INF/menu-config.xml"/>
</plug-in>
如果不是使用Struts的应用里面依然需要用Struts-Menu的,就需要加下列代码:
<!--
- Loads the menu-config.xml for struts-menu at startup,
- by default from "/WEB-INF/menu-config.xml".
- To override this, add a context-param named "menuConfigLocation"
- web.xml file.
-->
<listener>
<listener-class>net.sf.navigator.menu.MenuContextListener</listener-class>
</listener>
(3) WEB-INF/menu-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!—定义菜单名称和连接指向-->
<MenuConfig>
<Displayers>
<Displayer name="ListMenu" type="net.sf.navigator.displayer.ListMenuDisplayer"/>
</Displayers>
<!—定义菜单列表-->
<Menus>
<!—定义菜单Menu1-->
<Menu name="Menu1" title="menu.appfuse" description="appfuse menu">
<!—定义菜单Menu1的菜单项,连接跳转可以是struts action页面-->
<Item name="UserMenu" title="menu.user" action="editProfile"/>
<Item name="FileUpload" title="menu.selectFile" action="selectFile"/>
<Item name="FlushCache" title="menu.flushCache" action="flush"/>
<!—连接跳转可以是jsp页面-->
<Item name="Clickstream" title="menu.clickstream" page="/clickstreams.jsp"/>
<!—定义菜单项的子菜单-->
<Item name="admin" title="menu.admin.users">
<Item name="am.viewUsers" title="menu.admin.users" forward="viewUsers"/>
<Item name="ReloadContext" title="menu.admin.reload" action="reload"/>
</Item>
</Menu>
<!—定义菜单Menu2-->
<Menu name="Menu2" title="menu.title2" description="Menu 2" forward="editProfile"/>
<!—定义菜单Menu3-->
<Menu name="Menu3" title="menu.title3" description="Menu 3" forward="editProfile"/>
<Menu name="Menu4" title="menu.title4" description="Menu 4" forward="editProfile"/>
<Menu name="Menu5" title="menu.title5" description="Menu 5" forward="editProfile"/>
</Menus>
</MenuConfig>
(4) 具体在Jsp中显示菜单例子
<!—标签显示定义好的菜单,其中name属性于menu-config.xml中的name属性保持一致-->
<div id="menu">
<menu:useMenuDisplayer name="ListMenu" >
<menu:displayMenu name="Menu1"/>
<menu:displayMenu name="Menu2"/>
<menu:displayMenu name="Menu3"/>
<menu:displayMenu name="Menu4"/>
<menu:displayMenu name="Menu5"/>
</menu:useMenuDisplayer>
</div>
<script type="text/javascript">
initializeMenus();
</script>