在struts的action中使用spring的IOC容器管理类

struts-config.xml 配置文件如下

xml 代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. >  
  3.   
  4. <struts-config>  
  5.   <data-sources />  
  6.   <form-beans >  
  7.     <form-bean name="TestForm" type="com.gavin.struts.form.TestForm" />  
  8.   
  9.   form-beans>  
  10.   
  11.   <global-exceptions />  
  12.   <global-forwards />  
  13.   <action-mappings >  
  14.     <action  
  15.       attribute="TestForm"  
  16.       name="TestForm"  
  17.       path="/test"  
  18.       scope="request"  
  19.       type="org.springframework.web.struts.DelegatingActionProxy"  
  20.       validate="false">  
  21.       <forward name="ok" path="/form/test.jsp" />  
  22.     action>  
  23.   
  24.   action-mappings>  
  25.   
  26.   <message-resources parameter="com.gavin.struts.ApplicationResources" />  
  27. struts-config>  

 

其中最关键的地方是 action 的 type="org.springframework.web.struts.DelegatingActionProxy"

必须设置为spring的代理

spring的配置文件如下

xml 代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
  6.   
  7.     <bean name="/test" class="com.gavin.struts.action.TestAction">  
  8.         <property name="log">  
  9.             <ref bean="Log" />  
  10.         property>  
  11.     bean>  
  12.     <bean id="Log" class="com.gavin.service.Log" />  
  13. beans>  

 

注意:

action 对应的类必须 设置name属性,而不是id ,这里的name必须和struts配置文件中action的path相同

 

你可能感兴趣的:(struts+spring)