public class test{
private Mydao myDao;public void setMydao(Mydao myDao) {
this.myDao = myDao;
}
}<bean id="myDao" class="myDao" /><bean id="test" class="test">
<property name="myDao" ref="myDao" />
</bean>

解决方案 »

  1.   

    谢谢Ryo_Hazuki给我的提示,大家看我这样的想法对不对:
    在页面处理是在xwork.xml把action定位到MyTest.java,在MyTest,java中使用如下构造函数:
    MyTest(MyDao,myDao){
    this.myDao=myDao;
    }
    而在applicaotionContext.xml中这样注册:
    <bean id="MyDao" class="myDao" /><bean id="MyTest" class="MyTest">
       <constructor-arg>
          <ref bean="MyDao"/>
        </constructor-arg>
    </bean>
    现在因为机器原因没法测试,可是我决得哪里好象有点问题这个MyTest.java是webwork的控制类,在MyTesy.java中没有
    ApplicationContext act= new ClassPathXmlApplicationContext("applicationcontext.xml");
    MyDao myDao=(MyDao)act.getBean("MyDao");这些代码,MyTest中构造的MyDao,会是spring中注册的那个Dao吗?
      

  2.   

    就上面的说明例子
    我的意思是,我在使用MyTest时,不是通过
    ApplicationContext act= new ClassPathXmlApplicationContext("applicationcontext.xml");
    MyTest myTest=(MyTest)act.getBean("MyTest")这样得到MyTest的,而是在页面提交后,直接就执行MyTest了,那这个MyTest还是sping中的那个MyTest吗?虽然在物理上是同一个文件,但现在sping把那个Dao注入给直接执行的MyTest了吗??
      

  3.   

    /////////////////////////////////////////
    你使用webwork么?webwork中的IoC容器就是spring,默认是用name自动连接的。
    下面的配置就可以
    public class test extends AcionSupport{
    private Mydao myDao;public void setMydao(Mydao myDao) {
    this.myDao = myDao;
    }
    }
    ///在applicationContext.xml中加入
    <bean id="myDao" class="yourpacket.MyDao" />
    ///然后就可以了
    webwork首先尝试由spring创建你的action,根据你的set方法的name来判断是否要注入类。所以以上代码就可以了。
      

  4.   

    我是用的webwork,也就是说我只要继承了actionSupport,就可以直接使用applicationContext.xml中定义bean了吗?那我上面的代码就可以了?谢谢,星期一我44,到时把结果反馈回来,谢谢!
      

  5.   

    除了继承ActionSupport还得在xwork上配置上,别忘了……
      

  6.   

    在web.xml中加上<listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
     <listener> 
      <listener-class>com.opensymphony.webwork.spring.WebWorkSpringObjectFactory</listener-class>
    </listener>
    后出现HTTP Status 404错误,不加就OK,但webwork出现
    There is no Action mapped for namespace / and action name uesrmanager错误?郁闷,指望点
      

  7.   

    xwork.xml配置
    <include file="webwork-default.xml"/>
        <package name="manager" extends="webwork-default">
           <action name="uesrmanager" class="UserManager">
               <result name="success" type="dispatcher">
                    <param name="location">/ok.jsp</param>
               </result>
          </action>   
        </package> 
    appliactionContext.xml:
    <bean id="UserDao" class="act.DefaultUserDao">
       <property name="hibernateTemplate">
                   <ref bean="hibernateTemplate"/>
       </property>
     </bean>
     
    <bean id="UserManager" class="manager.UserManager" singleton="false"> 
       <constructor-arg>
                   <ref bean="UserDao"/>
        </constructor-arg>
     </bean>
    <bean id="spring-object-factory" class="com.opensymphony.xwork.spring.SpringObjectFactory" init-method="initObjectFactory"/>
      

  8.   

    很奇怪的问题,HTTP Status 404错误感觉是TOMCAT的问题,而不是spring问题,那个webwork的错误更奇怪了,把所有代码改回以前成功运行一摸一样,还是报no Action错误?怎么办啊,求高手指点下啊!!