- 浏览: 141298 次
- 性别:
- 来自: 南宁
文章分类
- 全部博客 (137)
- J2SE API基础 (19)
- JAVA Structure/Algorithm (1)
- 设计模式及UML(pd/rose) (11)
- SSH (32)
- JPA/EJB/JSF (0)
- Jsp/Servlet (1)
- XML (0)
- DWR/Dojo/JQuery(Ajax) (1)
- Js/css/HTML (3)
- Java报表开发 (0)
- 网络协议及认证加密算法 (2)
- Java多线程网络编程 (1)
- Lucence (0)
- Oracle Developer (5)
- Oracle DBA (3)
- mysql/SQLServer/DB2 (5)
- Weblogic配置/调试 (0)
- Tomcat/JBoss/Websphere (10)
- Linux/Unix操作部署及shell编程 (9)
- C/C++编程 (4)
- 系统分析 (0)
- 项目管理(CVS&风险控制) (0)
- JUnit单元和J2EE集成测试 (2)
- 软设/招聘 (6)
- IT English (8)
- Mathematics/Data Mining (1)
- Android开发爱好 (1)
- Flash制作爱好 (0)
- Professional wisdom (4)
- 序言 (1)
- 聊天记录 (0)
- 理想 (3)
- 承诺 (0)
- oifuslfjsldkj_chatrecord (1)
最新评论
-
blues1021:
dafeiwudi 写道什么叫外频和陪频啊?一般电脑都显示主频 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系 -
dafeiwudi:
什么叫外频和陪频啊?一般电脑都显示主频,它不表示运算速递,我们 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系
Struts 2框架整合Spring很简单,下面是整合的步骤。
1.复制文件 。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。
2.配置struts.objectFactory属性值 。在struts.properties中设置struts.objectFactory属性值:
struts.objectFactory = spring
或者在XML文件中进行常量配置:
<struts>
<constant name="struts.objectFactory" value="spring" />
...
</struts>
3.配置Spring监听器 。在web.xml文件中增加如下内容:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
4.Spring配置文件 。默认情况下,Spring配置文件为applicationContext.xml,该文件需要保存在Web应用的WEB-INF目录下。内容示例如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean id="personManager" class="com.acme.PersonManager"/>
</beans>
开发者实际上可以使用多个Spring配置文件,在web.xml中进行下列设置,从而使Spring的ApplicationContext通过匹配所给定模式的文件来初始化对象:
<!-- 用来定位Spring XML文件的上下文配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml </param-value>
</context-param>
5.修改Struts配置文件 。Struts 2框架整合Spring框架,需要在Struts配置文件中有所改变,下面是一个示例:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<package name="default" extends="struts-default">
<action name="foo" class="com.acme.Foo">
<result>foo.ftl</result>
</action>
</package>
<package name="secure" namespace="/secure" extends="default">
<action name="bar" class="bar ">
<result>bar.ftl</result>
</action>
</package>
</struts>
该配置文件中定义了两个Action配置:foo是一个标准的Struts 2框架Action配置,指定了Action实现类为com.acme.Foo;bar对应的class并不存在,那么框架将在Spring配置文件中查找id属性为“bar”的定义 ,该配置文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean id="bar" class="com.my.BarClass" singleton="false"/>
<!--1.关联到struts中,若没有可以用struts-plugin.xml( truts2-spring-plugin-x-x-x.jar中定义) 来给struts处理-->
...
</beans>
整合原理
Struts2与Spring的集成要用到Spring插件包struts2-spring-plugin-x-x-x.jar,这个包是同Struts2一起发布的。Spring
插件是通过覆盖(override)Struts2的ObjectFactory来增强核心框架对象的创建。当创建一个对象的时候,它会用Struts2
配置文件中的class属性去和Spring配置文件中的id属性进行关联,如果能找到,则由Spring创建,否则由Struts 2框架自身创建
,然后由Spring来装配
。Spring插件具体有如下几个作用:
— 允许Spring创建Action、Interceptror和Result。
— 由Struts创建的对象能够被Spring装配。
— 如果没有使用Spring ObjectFactory,提供了2个拦截器来自动装配action 。
开发者不必在Spring中去注册action,尽管可以这么去做,通常Struts框架会自动地从action mapping中创建action对象
struts2-spring-plugin-x-x-x.jar插件中有一个struts-plugin.xml文件,该文件内容如下所示:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<!--定义的name=“spring"( struts-plugin.xml中) 是对象生成工厂,可装载Action类(装载的也可为struts创建)-->
<!-- 设置Spring对象工厂为自动 -->
<constant name="struts.objectFactory" value="spring" />
<package name="spring-default">
<interceptors>
<interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
<interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>
</interceptors>
</package>
</struts>
其中设置了Struts 2框架常量struts.objectFactory的值为spring,实际上,spring是org.apache.struts2.spring.StrutsSpringObjectFactory类的缩写,默认情况下所有由Struts 2框架创建的对象都是由ObjectFactory实例化的 ,ObjectFactory 提供了与其他IoC容器如Spring、Pico等集成的方法。覆盖这个ObjectFactory的类必须继承ObjectFactory类或者它的任 何子类,并且要带有一个不带参数的构造方法。在这里用org.apache.struts2.spring.StrutsSpring ObjectFactory代替了默认的ObjectFactory。
如果Action不是使用Spring ObjectFactory创建的话,插件提供了两个拦截器来自动装配Action,默认情况下框架使用的自动装配策略是name ,也就是说框架会去Spring中寻找与Action属性名字相同的bean,可选的装配策略还有:type、auto、constructor,开发者可以通过常量struts.objectFactory.spring.autoWire来进行设置。
Struts 2框架整合Spring后,处理用户请求的Action并不是Struts框架创建的,而是由Spring插件创建的。创建实例时,不是利用配置Action时指定的class属性值,根据bean的配置id属性,从Spring容器中获得相应的实例。
发表评论
-
Unity3DHouse中成功删除信息
2011-08-10 01:12 817//在jsp页面传入的参数在Action类中调用deleteH ... -
hibernate3.0中实现修改数据记录
2011-08-10 01:11 6861.查询页面中传入参数: <a href=& ... -
Unity3DHouse4项目save(object1)到库问题的解决
2011-08-10 01:10 7081.添加时点击没有任何响应和提示,google了一遍有说是 ... -
Unity3DHouse4系统未解问题
2011-08-10 01:08 7981.struts1.2+spring 2.2+Hibern ... -
Struts表单提交的text String数据可以作为HQL中的Integer类型处理
2011-08-10 01:06 8751.传入数据的表单中的声明 :<form metho ... -
6月28日房产的登录模块报错
2011-08-10 01:04 8251.JSP语法报错 exception org.ap ... -
struts的jsp Action中传入EL表达式参数及myeclipse操作技巧(涛)
2011-08-10 01:03 8781.<a href="/searchBuild ... -
Struts标签之Cannot find bean under name org.apache.struts.taglib.html.BEAN错误
2011-08-10 01:02 1292Cannot find bean under name ... -
【转】关于在HQL中的模糊查询问题
2011-08-10 01:02 779来自:20 ... -
Struts中的Action二次请求不认路径../的解决方法
2011-08-10 01:00 846地址栏没有了项目名称:http://localhost:808 ... -
myEclipse项目部署问题之解决方法
2011-08-10 00:58 1010myeclipse下工程: 1.安装myclipse时6.5 ... -
Strut2的属性驱动,模型驱动的理解
2011-08-10 00:58 1078因为在struts1的版本中,属性的拦截以及控制的处 ... -
Hibernate注释中的参照完整性和复合主键类解析
2011-08-10 00:57 1042在引入了或声明了相关表或类后就能够使用它下面的方法,例如: ... -
【转】hibernate的@EmbeddedId嵌入式主键类详解
2011-08-10 00:56 1040复合主键也可以采用 ... -
Spring 2.*有注释的配置文件中各层配置详解
2011-08-10 00:55 853<?xml version="1.0" ... -
Spring 2.5注释程序执行过程和融合xml使用
2011-08-10 00:54 830Spring2.5注释 一、加载Spirng容器,在web. ... -
【转】Struts2注解使用解析
2011-08-10 00:54 809如果希望使用 struts2 ... -
《转》struts.xml 模块化管理
2011-08-10 00:52 818... -
房产销售系统的服务器配置问题?
2011-08-10 00:48 704Tomcat在外面的安装时抛出404找不到资源,测试后 ... -
《学生选课系统课程设计》提交过程的感悟
2011-08-10 00:46 768今天去提交数据库课程设计,昨晚把数据库安装了一晚JDK,m ...
相关推荐
Struts2和Spring是两个非常重要的Java开源框架,它们分别在MVC(Model-View-Controller)架构和依赖注入(Dependency Injection,DI)方面发挥着关键作用。将这两个框架整合在一起,可以构建出高效、可维护的企业级...
总结来说,Struts1、Struts2和Spring MVC各有优劣,选择哪个框架主要取决于项目需求、团队熟悉程度以及对框架特性的偏好。在现代Java Web开发中,Spring MVC因其灵活性和强大的功能,成为更受欢迎的选择。
集成Struts2、Spring和Hibernate时,需要注意配置文件的正确设置,包括Action配置、Spring Bean的定义、Hibernate的数据库连接和实体映射。同时,理解这三个框架的工作原理和相互作用,对于解决问题和优化代码至关...
struts2-spring-plugin.jar :struts,spring插件。...在我们集成struts2+spring+hibernate,也就是所谓的S2SH,不可避免的要引入struts2-spring-plugin.jar插件。 本文介绍了该插件的使用方式,工作原理,和常见问题
**Struts与Spring的集成原理** 集成Struts和Spring主要有以下几个步骤: 1. **引入Spring插件**:在Struts 2中,需要添加Spring插件,如`struts2-spring-plugin-*.jar`到项目类路径中。 2. **配置Spring**:在...
Struts2和Spring2是Java Web开发中两个非常重要的开源框架。Struts2是一个用于构建MVC(模型-视图-控制器)架构的框架,它提供了丰富的动作和拦截器库,便于实现业务逻辑和控制层的解耦。而Spring2则是一个全面的...
Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的Web应用程序。以下是对这三个框架及其整合的详细解释。 **Struts2框架** Struts2是一个基于MVC(Model-View-...
Struts2和Spring是两种非常重要的Java Web开发框架,它们在企业级应用中广泛使用。Struts2主要用于处理MVC(Model-View-Controller)架构中的控制器部分,而Spring则是一个全面的轻量级框架,提供了包括依赖注入、...
整合Struts2和Spring的主要目的是将Spring的依赖注入特性引入到Struts2的Action中,这样可以避免硬编码依赖,使代码更加灵活和易于测试。这通常通过使用Spring的Struts2插件来实现,该插件允许Struts2从Spring容器中...
Struts2与Spring的集成使得我们可以利用Spring的依赖注入(DI)和面向切面编程(AOP)特性,简化对象管理。 Spring框架是Java企业级应用的核心,它提供了一站式解决方案,包括IOC(Inversion of Control,控制反转...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合通常被称为SSH整合,是构建企业级应用的一种常用技术栈。本项目是基于Eclipse集成开发环境,结合MySQL数据库实现的一个基础的增删改查功能。接...
首先,让我们深入理解Struts2和Spring的集成原理。在集成过程中,通常会通过Spring的`struts-plugin.xml`配置文件来管理Struts2的动作类(Action),这样Spring就能负责这些动作类的生命周期管理,包括依赖注入。...
Struts1、Spring2和Hibernate2是Java Web开发中的三个重要框架,它们分别负责MVC模式中的表现层、业务层和服务层。这个整合例子旨在展示如何将这三个框架协同工作,以构建一个完整的Java Web应用程序。 Struts1是...
1.将struts2和spring中的库文件复制到项目下(可以查看WEB-INF\lib目录下的文件) 注意:struts2-spring-plugin-2.3.8.jar和commons-logging.jar文件可以在 struts框架中的找到而spring.jar 在spring框架中 2. ...
Struts2、Spring和Hibernate是Java开发中三大主流的开源框架,它们分别专注于Web层、业务层和服务层的管理,组合使用可以构建出强大的企业级应用。这些框架的jar包是开发人员日常工作中必不可少的工具。 **Struts2*...
Struts1、Struts2、Spring和Hibernate是Java Web开发中的四大框架,它们各自承担着不同的职责,共同构建了一个强大的企业级应用体系。 Struts1是Apache组织开发的一个开源MVC框架,它使得Java Web应用程序的开发...
在这个demo中,只提供了Quartz必要的库,所以其他如Struts2和Spring的相关库需要你自己添加到项目中。 具体步骤可能如下: 1. 创建Spring配置文件,配置Quartz的相关bean,如SchedulerFactoryBean和JobDetail。 2. ...
JavaWeb开发是一个复杂...这些资源对于深入理解和实践JavaWeb开发,特别是Hibernate、Struts2和Spring2的集成应用,非常有价值。通过学习这些教程和理解相关概念,开发者可以更高效地构建稳定且功能丰富的Web应用程序。
Struts2、Spring和...综上所述,这个案例涵盖了Struts2+Spring+iBatis框架的典型应用场景,通过学习和实践这个案例,开发者可以深入理解这三大框架的协同工作原理,为开发高效、稳定的Java Web应用打下坚实的基础。
Spring与Struts2和Hibernate的整合可以实现无缝的MVC应用,提供更健壮的架构。 在这个SSH-test项目中,开发者可能已经配置好了三个框架的整合,确保它们能够协同工作。Struts2负责接收用户请求并调用业务逻辑,业务...