我用的是spring 2.0和struts 1.X.
配置文件:
struts-config.xml
<struts-config>
<form-beans>
<form-bean name="userActionForm" type="actionForm.UserActionFrom"/>
<form-bean name="createActionForm" type="actionForm.CreateActionForm"/>
</form-beans>  <global-forwards>
<forward name="done" path="/success.jsp" />
<forward name="failure" path="/error.jsp"></forward>
</global-forwards> <action-mappings>
<action path="/log"
attribute="userActionForm"
type="actions.BaseAction"
name="userActionForm" parameter="method">

<forward name="login" path="/index.jsp" />
</action>
 <action path="/add"
  attribute="createActionForm"
  name="createActionForm"
  type="actions.BaseAction"
parameter="method">
<!-- type="createActionForm" -->

</action>
 <action path="/query"
  attribute="createActionForm"
name="createActionForm"
type="actions.BaseAction"
parameter="method">
<forward name="query" path="/query.jsp"></forward>
</action>
<action path="/delete"
  attribute="createActionForm"
name="createActionForm"
type="actions.BaseAction"
parameter="method"
>
<forward name="query" path="/query.do"></forward>
</action>
<action path="/edit"
  attribute="createActionForm"
name="createActionForm"
                                    type="actions.BaseAction"
parameter="method">
<forward name="query" path="/query.do"></forward>
</action>
<action path="/page"  attribute="createActionForm" name="createActionForm" parameter="method" type="actions.BaseAction">
<forward name="query"  path="/query.jsp"></forward>
</action>
</action-mappings> <message-resources parameter="struts/applicationResources_zh_CN"/>
<message-resources parameter="struts/applicationResources"/>
</struts-config>
我使用的是DispatchActionweb.xml
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring/*.xml</param-value>
  </context-param>
  <context-param>
  <param-name>log4jConfigLocation</param-name>
     <param-value>/WEB-INF/log4j.properties</param-value>
  </context-param>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 </listener>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>   
  <servlet>
  <servlet-name>action</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
  <param-name>config</param-name>
  <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
   <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
  </servlet-mapping>applicationContext.xml   <bean id="dao" class="Dao.UserManagerDao"/>
   
   <bean id="usermanager" class="service.UserManager"/>
   <bean id="pagemanager" class="service.PageManager"/>
  
  
   <bean id="baseAction" class="actions.BaseAction">
     <property name="usermanager"><ref bean="usermanager"/></property>
     <property name="pagemanager"><ref bean="pagemanager"/></property>
   </bean>
   
<!-- bean -->
   <bean id="user" class="Bean.User">
   </bean>
   
<!-- sessionfactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect </prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.current_session_context_class">jta</prop>
<!--<prop key="transaction.manager_lookup_class">org.springframework.orm.hibernate3.HibernateTransactionManager</prop>-->
<prop key="hibernate.c3p0.acquire_increment">2</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.region_prefix">ehcache</prop>
<prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider
</prop>
<prop key="hibernate.connection.pool_size">300</prop>
<prop key="hibernate.c3p0.min_size">300</prop>
<prop key="hibernate.c3p0.max_size">1000</prop>
<prop key="hibernate.c3p0.timeout">2500</prop>
<prop key="hibernate.c3p0.max_statments">1000</prop>
</props>
</property>
<property name="mappingResources" value="/hibernate/User.hbm.xml"/>
</bean>

<!-- 事务 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<!-- 数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1/first"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
<bean id="systemlog" class="log.SystemLog"/>


<tx:annotation-driven/>
tomcat启动编译没问题。
在我的BaseAction中我可以使用getBean()得到Bean,进行操作。但是当我不使用getBean()而直接调用usermanager.login(user),就会报错usermanager为空。
在 service类中我不使用getBean()而直接调用userManagerDao.add(User)等都可以。请问这是为何?