Spring与Struts1.x的整合


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,添加struts1.x, Spring能力

2, 在struts1.x的配置文件struts-config.xml中配置与Spring的联系
<action-mappings >
<action
attribute=”loginForm”
input=”/login.jsp”
name=”loginForm”
path=”/login”?? //在Spring的applicationContext.xml中要用此path当做bean id
scope=”request”
type=”org.springframework.web.struts.DelegatingActionProxy” >
?? //交由Spring来生成action,而不是在此就指定具体的类
<forward name=”success” path=”/success.jsp” />
</action>
</action-mappings>

<message-resources parameter=”com.yourcompany.struts.ApplicationResources” />
<!– 集成Spring插件 –>
<plug-in className=”org.springframework.web.struts.ContextLoaderPlugIn”>
<set-property property=”contextConfigLocation” value=”/WEB-INF/classes/applicationContext.xml”/>
</plug-in>
? // struts添加Spring插件
注:也可不用插件, 利用如struts 2.0 的方式在web.xml中配置Spring监听器 即:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>

3,在Spring中添加action的生成
<bean name=”/login” scope=”prototype” >
<property name=”myService”>
??? <ref bean=”myService”/>
</property>
</bean>

ps: struts 1.x , struts2.0与Spring整合的区别:
(1)1.x 是整个action注入,生成由Spring负责,而2.0让spring负责属性的注入,也可负责action的创建。
(2)1.x与Spring的联系是在其配置文件struts-config.xml中通过插件机制完成,也可在web.xml中配置Spring过滤器完成.都市而2.0是在 web.xml中通过配置过滤器来完成这种联系。
(3)?? 1.x 是全部注入:struts-config.xml中要配置每个action与spring的联系???????????? type=”org.springframework.web.struts.DelegatingActionProxy” >
然后在spring的applicationContext.xml中配置对应的bean
??? 2.0不仅有全部注入,还有属性注入.
???? 2.0 属性注入,在struts2.0的struts.xml中无须配置每个action与Spring的联系,只须在action类中指定一个属性名,此属性名与application.context.xml中某一bean id相同即可。
???? 2.0 所有注入:托管action的所有生命周期,要在struts.xml中为action的class指定为Spring的applicationContext.xml中的一个bean id,这样就可完成所有托管.
无论是1.x,还是2.0,若想让spring注入属性,必须在类中为此属性指定set,get方法,而不论此属性是private,还是public