Spring 2.0 整合 struts 1.2 的配置方法

Spring 2.0 整合 struts 1.2 的配置方法

使用IDE:myEclipse

先将所需jar包加入到web-inf文件的lib文件夹下,myEclipse可以自动帮你完成,在这就不多说了。

第一步:

在struts-config .xml配置文件中增加一行如下:

<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

这样在struts中的action配置无须配置class属性,即使配置了也无效。

第二步:

利用 struts的Plug创建spring容器,需在struts-config .xml配置文件配置:

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

<set-property property="contextConfigLocation"

value="/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml"/>

</plug-in>

第三步:

因为使用了 spring管理struts的Action,而Action是随HTTP请求启动的,因此,应将Action的作用域配置成Request,为了使用 Request作用域,必须在web.xml文件中添加适当的配置。

其实不配这一项应该也是可以的, 因为默认作用域就是request的。

<!-- spring begin -->

<filter>

<filter-name>requestContextFilter</filter-name>

<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>requestContextFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- spring end -->


第四步:

配置spring 的文件:


<bean name="/testAction" class="com.ssh.action.TestAction" scope="request">

<property name="dao" ref="testDao" />

</bean>

<bean id="testDao" class="com.ssh.dao.TestDao"></bean>

struts的action配置如下:

<action-mappings>

<action name="testForm" parameter="action" path="/testAction" validate="false">

<forward name="test" path="/test.jsp"></forward>

</action>

</action-mappings>
* 必须使name属性,name属性值必须和struts-config.xml文件中的<action>标签的path属性值一致
* 建议将scope设置为prototype这样就避免了struts action的线程安全问题

总结,解决了依赖查找,使用依赖注入,它没有侵入性。

完成这个设置后,strus会将截获到的用户请求转发到spring context下的bean,根据bean的name属性来匹配。如果配置default-autowire="byName" ,会更简单一些。

你可能感兴趣的:(spring,bean,struts,MyEclipse,配置管理)