原文:
http://www.blogjava.net/beansoft/archive/2007/08/06/134571.html
http://beansoft.java-cn.org/download/Spring_Struts.swf
代码: 不完整版, 不带 Struts JAR 包, 只有 src 和 jsp 以及 MyEclipse 项目文件.
http://beansoft.java-cn.org/download/Spring_Struts.zip
Spring 整合 Strus 要点
beansoft@126.com
2007-8-5
1. 项目需要有 Struts 包和 Spring 的 core, aop, web 三个包(注意不是 Spring 自己的 Web MVC), 具体的 .classpath 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-beanutils.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-digester.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-validator.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jakarta-oro.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-3.1.11-bin.jar"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_AOP"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_WEB"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>
2. 对 Struts 配置文件做修改加入 Spring 托管功能.
创建 Spring 配置文件,将文件放到src 目录下,文件名称为 applicationContext.xml, 编译后放到 WEB-INF/classes/ 下.
配置struts-config.xml文件,添加 spring的插件, 位置在 struts-config 文件的最末尾.
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
3. 修改 Struts 的 struts-config.xml 中的Action配置
原:
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="com.test.struts.action.LoginAction" />
改为:
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy" />
type 部份为修改内容, 这里将使用spring的代理器来对Action进行控制.
当提交到/login.do是将控制权交给了spring,然后由spring来把它转回到struts的Action.
4. 配置spring 来实例化上一步中被删除的 Action 类.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="/login" class="com.test.struts.action.LoginAction"></bean>
</beans>
Spring 通过 org.springframework.web.struts.DelegatingActionProxy 这个类, 然后根据 Struts 配置文件中的 <action path="/login" ..> 和 Spring 配置文件中的 <bean name="/login" ..> 来将 Spring 管理下的 Struts Action 类和提交的路径匹配起来, 这些就是关于转交控制权的配置内容.
实践的过程中发现必须把 singleton="false"去掉才行, 否则就会无法初始化 Spring 框架, 不知道具体的原因是什么.
既然这个 Struts 的 Action 已经通过 Spring 来初始化, 所以就可以加入依赖注入, 整合 Hibernate 的功能了. 例如典型的情况:
com.test.struts.action.LoginAction
private UserManager userManager;
public UserManager getUserManager()...
public void setUserManager(UserManager userMgmr) ...
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("userManager=" + getUserManager());
getUserManager().someBusinessMethods();
.....
}
然后就可以配置:
<bean name="/login" class="com.test.struts.action.LoginAction">
<property name="userManager">
<ref bean="userManagerBean" />
</property>
</bean>
<bean id="userManagerBean" class="manager.UserManager" />
同理 Spring 整合 Hibernate 和没 Struts 的时候一样, 也可以在这个文件中进行配置即可.
4. 最后一步, 测试, 只要能打印出来 userManager 不为空, 就说明整合成功了. 如果出现 404 action servlet 不可用的错误, 一般都是 Spring 配置文件出错导致的.
分享到:
相关推荐
《王者归来之JAVA程序开发大全:基于MYECLIPSE平台+STRUTS+HIBERNATE+SPRING主体流框架开发》这本书是为Java开发者提供的一份全面指南,尤其适合那些希望深入理解并掌握企业级Java应用开发的读者。本书以MyEclipse...
根据提供的标题、描述以及部分内容,本文将详细解析与MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12相关的技术栈及其应用。这些技术在企业级开发中非常常见,能够帮助开发者构建高效...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个实例是为初学者设计的,通过MyEclipse集成开发环境,详细介绍了如何将这三大框架整合到一个登录工程中。下面将详细...
【标题】"基于hibernate+spring+struts的学生选课系统"是一个常见的Java Web开发框架的集成应用,用于构建高效、稳定且易于维护的学生选课管理平台。这个系统利用了三大主流开源框架:Hibernate作为对象关系映射...
标题 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发" 指向的是一个关于如何在集成开发环境Eclipse与MyEclipse中搭建Struts、Spring和Hibernate(SSH)框架的教程。SSH是Java Web开发中常用的一个...
JAVA程序开发大全:基于MYECLIPSE平台+STRUTS+HIBERNATE+SPRING主体流框架开发
java web 程序开发大全 基于myeclipse平台+struts+hibernate+spring主流框架开发的代码,是一本很好的入门的书,因为大小的关系,分两部分,这是part1,到16章
标题与描述均指向了“用MyEclipse搭建Struts+Spring+Hibernate框架”的主题,这一文档旨在指导读者如何在MyEclipse环境下构建一个基于Struts、Spring和Hibernate的开发框架,通常被称为SSH(Struts-Spring-Hibernate...
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...
在IT行业中,Spring框架是Java企业级应用开发的首选,而MyEclipse作为一款强大的集成开发环境,常常被用来辅助开发。本入门示例将帮助初学者了解如何使用MyEclipse结合Spring和Struts2来构建一个完整的Web应用程序。...
总的来说,这个项目展示了Java EE开发的基本流程和常用技术,包括使用MyEclipse进行项目构建,MySQL作为数据存储,以及Struts2和Hibernate的协同工作来处理业务逻辑和数据持久化。对于初学者来说,这是一个很好的...
【MyEclipse开发Struts+Spring+Hibernate入门】 在软件开发中,MyEclipse是一款强大的集成开发环境,尤其适用于Java Web应用的开发。本教程将引导你如何使用MyEclipse来构建一个基于Struts、Spring和Hibernate的...
### Spring+Struts+Hibernate应用开发知识点梳理 #### 1. 开发环境和工具 - MyEclipse6: 集成开发环境,用于Java开发。 - Java: 编程语言,用于编写应用逻辑。 - Spring: 一个开源框架,用于整合应用中的各个层次。...
### MyEclipse开发SSH2(Struts2+Spring+Hibernate)教程精析 #### 一、开发环境准备 在深入探讨如何使用MyEclipse构建SSH2框架(Struts2 + Spring + Hibernate)之前,首要任务是确保开发环境的正确搭建。本教程...
在IT行业中,集成框架Spring、Struts和Hibernate是企业级应用开发中的常见组合,被称为SSH框架。本教程将深入探讨如何在MyEclipse环境中利用这三个框架进行开发。MyEclipse是一款强大的Java EE集成开发环境,它提供...
3. 定义实体类:与数据库表对应的Java类,使用注解或XML文件描述其与表的关系。 4. 创建SessionFactory和Session:通过配置文件创建SessionFactory,然后使用Session进行数据库操作。 Spring框架则是一个全面的后端...
在本教程中,我们将深入探讨如何在MyEclipse集成开发环境中使用Spring、Struts和Hibernate这三个框架进行Web应用开发。这个下集将建立在上集的基础上,进一步讲解关键概念和实践步骤,帮助开发者掌握SSH(Spring、...
Struts、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责,组合使用可以构建出高效、灵活的企业级应用程序。在这个"MyEclipse开发Struts+Spring+Hibernate入门"教程中,我们将深入理解这三个...
在Myeclipse中开发基于Struts、Hibernate和Spring的项目,首先需要正确配置这三个框架的环境,包括安装Myeclipse、下载相关插件和数据库驱动,然后在项目中添加Struts、Hibernate和Spring的支持。接着,根据项目需求...