一、简介
Struts-Menu是一组从基于XML的配置文件中生成多种样式的菜单的JSP Tags,并且可以结合API开发通过数据库生成的动态菜单。Struts-Menu支持国际化和多种权限控制。
二、运行环境
Windows 2000 Professional
JDK 1.4.2_03
Eclipse 3.1
Tomcat 5.0.28
Tomcat Plugin 3.1Beta
Struts 1.2.7
Commons-Lang 2.1
Commons-Collections 3.1
Struts-Menu 2.3
MySQL 4.1.10a-nt
三、下载与安装
1:从http://java.sun.com下载J2SDK,当前1.4.x系列的最新版本为1.4.2_08
2:从http://www.eclipse.org下载Eclipse,当前最新版本为3.1正式版
3:从http://jakarta.apache.org/tomcat下载Tomcat,当前5.x系列的最新版本为5.0.28
4:从http://www.sysdeo.com/eclipse/tomcatplugin下载Eclipse的Tomcat插件,对应Eclipse3.1x的最新版本为3.1Beta
5:从http://struts.apache.org下载Struts,当前最新版本为1.2.7
6:从http://jakarta.apache.org/commons/下载Commons-Lang,当前最新版本为2.1,下载Commons-Collections,当前最新版本为3.1
7:从http://struts-menu.sourceforge.net下载Struts Menu,当前最新版本为2.3
8:从http://www.mysql.com下载MySQL数据库,4.x系列的最新版本是4.1.12a
9:MySQL、JDK、Eclipse、Tomcat和TomcatPlugin的安装及配置请参考相关资料
四、运行示例程序
1:安装好Tomcat后,解压缩struts-menu-2.3.zip,将struts-menu.war释放到Tomcat安装目录下的webapps下,运行Tomcat
2:在地址栏输入http://localhost:8080/struts-menu
五、安装与配置
1:在Eclipse中新建Tomcat项目,Context为/mymenu,Subdirectory为/web
2:在项目目录下面新建lib目录和web目录及WEB-INF,在web/WEB-INF目录下新建web.xml,内容如下:
< ?xml version="1.0" encoding="ISO-8859-1"?>
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
< DISPLAY-NAME>My Example Application -- Vinton Lee
< !-- ============= The Struts ActionServlet Configuration ============= -->
< SERVLET>
< SERVLET-NAME>action< /SERVLET-NAME>
< SERVLET-CLASS>org.apache.struts.action.ActionServlet< /SERVLET-CLASS>
< INIT-PARAM>
< PARAM-NAME>config< /PARAM-NAME>
< PARAM-VALUE>/WEB-INF/struts-config.xml< /PARAM-VALUE>
< /INIT-PARAM>
1
< /SERVLET>
< !-- ================================================================== -->
< !-- ============= The Struts Action Servlet Mapping ================== -->
< SERVLET-MAPPING>
< SERVLET-NAME>action< /SERVLET-NAME>
< URL-PATTERN>*.do< /URL-PATTERN>
< /SERVLET-MAPPING>
< !-- The Welcome File List -->
< WELCOME-FILE-LIST>
< WELCOME-FILE>index.jsp< /WELCOME-FILE>
< /WELCOME-FILE-LIST>
< !-- =============== The Struts Taglib Definition ===================== -->
< TAGLIB>
< TAGLIB-URI>struts-bean
< TAGLIB-LOCATION>/WEB-INF/struts-bean.tld< /TAGLIB-LOCATION>
< /TAGLIB>
< TAGLIB>
< TAGLIB-URI>struts-html< /TAGLIB-URI>
< TAGLIB-LOCATION>/WEB-INF/struts-html.tld< /TAGLIB-LOCATION>
< /TAGLIB>
< TAGLIB>
< TAGLIB-URI>struts-logic< /TAGLIB-URI>
< TAGLIB-LOCATION>/WEB-INF/struts-logic.tld< /TAGLIB-LOCATION>
< /TAGLIB>
< TAGLIB>
< TAGLIB-URI>struts-nested
< TAGLIB-LOCATION>/WEB-INF/struts-nested.tld< /TAGLIB-LOCATION>
< /TAGLIB>
< TAGLIB>
< TAGLIB-URI>struts-tiles< /TAGLIB-URI>
< TAGLIB-LOCATION>/WEB-INF/struts-tiles.tld< /TAGLIB-LOCATION>
< /TAGLIB>
< !-- ================================================================== -->
< !-- ============= The Struts-Menu Taglib Definition ================== -->
< TAGLIB>
< TAGLIB-URI>struts-menu< /TAGLIB-URI>
< TAGLIB-LOCATION>/WEB-INF/struts-menu.tld
< /TAGLIB>
< !-- ================================================================== -->
3:解压缩struts-1.2.7.zip,将压缩包中的lib目录下所有的8个jar释放到lib目录中,将5个tld文件释放到web\WEB-INF目录中,在web\WEB-INF目录中新建struts-config.xml,内容如下:
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN""http://struts.apache.org/dtds/struts-config_1_2.dtd">
< !-- ========== Data Source Configuration =============================== -->< DATA-SOURCES />
< !-- ========== Form Bean Definitions =================================== -->< FORM-BEANS />
< !-- ========== Global Exception Definitions ============================ -->< GLOBAL-EXCEPTIONS />
< !-- ========== Global Forward Definitions ============================== -->< GLOBAL-FORWARDS />
< !-- ========== Action Mapping Definitions ============================== -->< ACTION-MAPPINGS />
< !-- ========== Controller Configuration ================================ -->
< !-- ========== Message Resources Definitions =========================== -->< MESSAGE-RESOURCES parameter="application" />
< !-- ========== Plug Ins Configuration ================================== -->< PLUG-IN className="net.sf.navigator.menu.MenuPlugIn">< SET-PROPERTY value="/WEB-INF/menu-config.xml" property="menuConfig" />< /PLUG-IN>
4:解压缩struts-menu-2.3.zip,将压缩包中的jstl-1.0.6.jar、standard-1.0.6.jar、struts-menu-2.3.jar释放到lib目录中,将压缩包中的struts-menu.tld、struts-menu-el.tld释放到web\WEB-INF目录中,解压缩commons-lang-2.1.zip,将commons-lang-2.1.jar解压缩到lib目录中,注意,在Struts-Menu的文档中没有看到需要这个包,但是没有这个包却无法成功加载。在web\WEB-INF目录中新建menu-config.xml,内容如下:
< ?xml version="1.0" encoding="UTF-8" ?>
< MENUCONFIG>
< DISPLAYERS>
< DISPLAYER
type="net.sf.navigator.displayer.DropDownMenuDisplayer"/>
< DISPLAYER
type="net.sf.navigator.displayer.SimpleMenuDisplayer"/>
< DISPLAYER
type="net.sf.navigator.displayer.CoolMenuDisplayer"/>
< DISPLAYER
type="net.sf.navigator.displayer.CoolMenuDisplayer4"/>
< DISPLAYER
type="net.sf.navigator.example.PermissionsFormMenuDisplayer"/>
< DISPLAYER
type="net.sf.navigator.displayer.ListMenuDisplayer"/>
< DISPLAYER
type="net.sf.navigator.displayer.TabbedMenuDisplayer"/>
< DISPLAYER
type="net.sf.navigator.displayer.VelocityMenuDisplayer"/>
< /DISPLAYERS>
< MENUS>
< MENU title=DoorSite name="DoorSite" width="50" description="Some famous doorsite" >
< ITEM title="Yahoo Index" name="YahooIndex" ? location="
< A href=www.51cto.comlocation="http://www.51cto.com"/ >
< ITEM title=Sina name="Sina" ? location="
< A href=' http: www.sina.com.cn?>http://www.sina.com.cn"/ >
5:将第四步的示例程序中的struts-menu应用目录下的images、scripts、styles三个目录中的内容复制到web目录下
6:你的目录结构应该类似如下:
%PROJECT_HOME%\classes
%PROJECT_HOME%\lib
%PROJECT_HOME%\lib\antlr.jar
%PROJECT_HOME%\lib\commons-beanutils.jar
%PROJECT_HOME%\lib\commons-digester.jar
%PROJECT_HOME%\lib\commons-fileupload.jar
%PROJECT_HOME%\lib\commons-lang-2.1.jar
%PROJECT_HOME%\lib\commons-logging.jar
%PROJECT_HOME%\lib\commons-validator.jar
%PROJECT_HOME%\lib\jakarta-oro.jar
%PROJECT_HOME%\lib\jstl-1.0.6.jar
%PROJECT_HOME%\lib\standard-1.0.6.jar
%PROJECT_HOME%\lib\struts.jar
%PROJECT_HOME%\lib\struts-menu-2.3.jar
%PROJECT_HOME%\src
%PROJECT_HOME%\src\log4j.properties
%PROJECT_HOME%\src\application.properties
%PROJECT_HOME%\src\application_zh_CN.properties
%PROJECT_HOME%\web
%PROJECT_HOME%\web\images\
%PROJECT_HOME%\web\scripts\
%PROJECT_HOME%\web\styles\
%PROJECT_HOME%\web\WEB-INF
%PROJECT_HOME%\web\WEB-INF\menu-config.xml
%PROJECT_HOME%\web\WEB-INF\struts-bean.tld
%PROJECT_HOME%\web\WEB-INF\struts-config.xml
%PROJECT_HOME%\web\WEB-INF\struts-html.tld
%PROJECT_HOME%\web\WEB-INF\struts-logic.tld
%PROJECT_HOME%\web\WEB-INF\struts-menu.tld
%PROJECT_HOME%\web\WEB-INF\struts-menu-el.tld
%PROJECT_HOME%\web\WEB-INF\struts-nested.tld
%PROJECT_HOME%\web\WEB-INF\struts-tiles.tld
%PROJECT_HOME%\web\WEB-INF\web.xml
六、实战Struts-Menu
1:使用配置文件实现静态菜单
新建JSP文件web/static-menu.jsp,内容如下:
< %@ taglib uri="struts-menu" prefix="menu" %>
< ?xml:namespace prefix = menu />< menu:useMenuDisplayer
bundle="org.apache.struts.action.MESSAGE">
< menu:displayMenu name="DoorSite">< /menu:displayMenu>
运行Tomcat,在IE地址栏输入http://localhost:8080/mymenu/static-menu.jsp查看
分享到:
相关推荐
Struts-Menu是一个基于Apache Struts框架的菜单生成库,它可以帮助开发者轻松地在Web应用中创建动态、可配置的菜单结构。这个实例教程将深入介绍如何使用Struts-Menu来构建用户界面的导航系统。 1. **Struts框架...
在实际应用中,`strutsMenu`这个文件可能是整个实例的源码或者示例项目的打包文件。它可能包含了以下内容: - `struts-menu.xml`:配置文件,定义了菜单结构。 - `MenuAction.java`:可能是一个处理菜单逻辑的...
这个例子是Struts-menu的一个实例,提供给需要了解或使用Struts-menu的开发者参考。下面将详细介绍Struts-menu及其在实际开发中的应用,以及如何利用提供的"struts-menu例子2"进行学习和实践。 1. **Struts-menu...
NULL 博文链接:https://guoyangjie.iteye.com/blog/870582
通过以上分析可以看出,在Struts2项目中配置过滤器是一种非常实用的方法,可以有效地实现对用户请求的预处理工作。需要注意的是,在实际应用中还应考虑更多细节问题,比如如何处理不同环境下的配置差异、如何更灵活...
在`strutsmenu`文件夹中,可能包含了Struts Menu的源代码、配置文件、样式表(CSS)以及JavaScript文件。这些资源是构建动态菜单所必需的,例如Action类、JSP页面、图片、样式等。开发者通常会根据项目需求对其进行...
这个例子中,当用户请求"logon.action"时,Struts2会实例化`tutorial.Logon`类并调用其`execute()`方法。如果执行成功,结果类型为"redirect-action",用户会被重定向到"Menu";如果执行失败,显示"Logon.jsp"。 2...
通过定义页面的布局结构(如header、footer、menu和body),可以实现页面组件的重用和动态组合,显著提升页面开发效率和代码的整洁度。 4. **异常处理** - Struts提供了灵活的异常处理机制。通过配置文件指定异常...
除了基础功能,StrutsMenu还可以与其他组件如国际化(i18n)、主题(Themes)等进行整合,实现更丰富的功能。开发者可以根据项目需求,自定义扩展StrutsMenu的行为,如添加缓存机制、增加菜单的动态加载等。 **6. ...
在本文中,我们将探讨如何使用Struts和JavaScript的dTree库来实现一个树形菜单。树形菜单在各种Web应用中非常常见,如权限管理、导航系统等,因为它提供了层次清晰、易于交互的界面。 首先,我们需要了解dTree的...
例如,在JSP页面中使用`<html:form action="Login.do">`来提交表单,但`Login.do`所对应的Action在`struts-config.xml`中没有正确的映射配置。 **解决方法:** - 检查`struts-config.xml`中是否包含了对应Action的...
在这个实例中,Struts作为控制器,接收用户的请求,调用相应的业务方法,并将结果返回给视图层。 4. **MyBatis框架** MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。在这个项目中,...
此外,还有一些图片资源,如`menu_05_1.gif`和`vline.gif`,它们用于增强用户界面的视觉效果,比如菜单项和分割线。 这个BBS项目涵盖了Web开发中的关键组件和技术,包括前端交互、后端处理、数据库操作以及事务管理...
总的来说,这个项目提供了一个结合了多种技术的实例,展示了如何在Web应用中实现动态的树形菜单和角色管理功能。开发者可以通过学习这个案例来提升自己在前端交互、后端处理以及框架整合等方面的能力。
SSH(Struts2 + Spring + Hibernate)框架则是一个常见的Java Web开发组合,用于实现MVC(Model-View-Controller)设计模式。在"easyui 实例"这个主题下,我们可以深入探讨这两个技术的结合及其应用。 标题"easyui ...
【标题】"网上订餐系统(struts+spring+hibernate)"是一个基于Java技术栈的Web应用程序,旨在实现在线餐饮预订的功能。这个项目利用了Struts、Spring和Hibernate三大框架的整合,它们分别是MVC(Model-View-...
下面将详细阐述 EasyUI 的主要特性和这些实例代码可能涵盖的知识点。 1. **EasyUI 的基本概念** - **组件化**:EasyUI 提供了一系列预先封装好的 UI 组件,如表格(datagrid)、对话框(dialog)、菜单(menu)、...
### MyEclipse 开发基于 MVC 模式的 WEB 应用实例讲解 #### 一、概述 MVC(Model-View-Controller)模式是一种常见的软件架构模式,尤其适用于Web应用程序的开发。它通过将应用程序分为三个核心组成部分来提高代码...
12.4 Struts 2.0应用实例:登录系统 227 12.5 本章小结 231 第13章 JPA的开发与应用 232 13.1 JPA规范概述 232 13.2 MyEclipse创建基于JPA规范的项目 233 13.2.1 创建JPA项目 233 13.2.2 使用反向工程生成JPA实体类...
在这个实例中,开发者将学习如何配置和整合这些框架,创建一个完整的用户管理系统,包括登录、权限控制和动态菜单展示。这不仅涵盖了技术实现,也涉及到了实际项目开发中的最佳实践,对于提升Java Web开发技能...