这么个问题。原来action里的service都是这样定义的,比如 private SNewsService service;然后跟上set方法。xml里再这样: <bean id="SNewsAction" class="com.action.SNewsAction" scope="prototype">
<!-- 将SNewsServiceImpl实例service注入给SNewsAction实例的service属性 -->
<property name="service" ref="service" />
是不是可以用Annotation装配,代码里不出现set方法?帮了个忙写一下。

解决方案 »

  1.   

    在struts.properties设置下struts.objectFactory=spring或者在struts.xml中<constant name="struts.objectFactory" value="spring" />不过struts2默认的就是spring。如果你用struts2那么这个属性是可以不用配置的。
      

  2.   


    这个应该不可能的.毕竟spring是通过反射注解的。set方法是必须的,除非你自己写个注解(该注解就是实现set方法)
      

  3.   


    呵呵 ,这个是看错楼主的意思了。我以为是想不在xml中注入action呢。 楼主忽略吧
      

  4.   


    为省去你在applicationContext.xml文件中的<bean id="SNewsAction" class="com.action.SNewsAction" scope="prototype">
            <!-- 将SNewsServiceImpl实例service注入给SNewsAction实例的service属性 -->
            <property name="service" ref="service" />
    这段代码,你可以使用我说到的配置。如果你使用的是struts2那么其实是你只需要在SNewsAction中声明 service 对象 并提供其set方法就可以了。
      

  5.   


    xml里这些不能省略的, 还有就是action里  set方法是必须的,是么?
      

  6.   


    xml对于action的注解可以省略。但action类中的set方法不能省。建议你看下struts2下载包中自带的例子。