1、web直接与spring整合使用通用配置:
web.xml 文件中声明一个 ContextLoaderLis
tener
,
并且在同一文件里增加一个 contextConfigLocation
<context-param/> , 这个声明决定了哪些 Spring XML 配置文件会被加载。
以下是 <listener/> 的配置:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
要求servlet api 2.4以下是context的配置。
<context-param> <param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
多个配置文件以空格或者逗号区分。
2、Struts1.x与spring集成在struts-config.xml 里面添加如下片段。
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml,/WEB-INF/applicationContext.xml"/>
</plug-in>
这是必须的步骤。下面的两种方案选择一个即可。
1)用 Spring 的DelegatingRequestProcessor
重载 Struts 默认的 RequestProcessor
。
2)将 <action-mapping>
的 type
属性设为 DelegatingActionProxy
。使用第1种方法。如果使用 Struts 的 modules 特性,则 bean 命名必须含有 module 的前缀。 举个例子,如果一个 Action 的定义为 <action path="/user"/>,而且它的 module 前缀为“admin”,那么它应该对应名为 <bean name="/admin/user"/> 的 bean。
如果你有一个自定义的 RequestProcessor
并且不能够使用 DelegatingRequestProcessor
或者
DelegatingTilesRequestProcessor
,你可以使用 DelegatingActionProxy
作为你
action-mapping 中的类型。