Spring集成Struts的主要目的是,将Struts2中Action的实例化工作交给Spring的容器同一管理,同时使Struts2中的Action实例能够访问Spring提供的业务逻辑组件资源。
集成步骤:
1.导入Spring框架依赖的jar包
2.导入需要的Struts2类的jar包
注意此处需要使用合适版本的jar包,否则会导致冲突;最好在一次使用后将所有的jar包存入User Library中,方便下次的使用
3.在struts.xml中配置常量,将ObjectFactory的值设置为spring
<constant name="struts.objectFactory" value="spring" />
之后,Action可以直接使用Spring容器的Bean:
<action name="helloWorld" class="helloWorldBean">
<result name="SUCCESS">success.jsp</result>
</action>
4.配置web.xml
<!--配置Struts2 的过滤器-->
<filter>
<filter-name>struts2</filter-name>
<!--指定Filter的实现类,此处使用的是Struts2提供的拦截器类-->
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>
</filter>
<!--定义Filter所拦截的URL地址-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--使用ContextLoaderListener 初始化Spring容器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>