public class TestAction extends ActionSupport{
private TestService testService;
public void setTestService(TestService testService) {
this.testService= testService;
}
}
兩種方式:
- 自動裝配,不在spring中注入Action
在struts.xml中:
<action name="testAction" class="com.xxxxx.action.TestAction">
就可以了
- spring配置
spring.xml中
<bean id="testAction" class="com.xxxxx.action.TestAction" >
<property ref="testService" />
</bean>
struts.xml中
<action name="testAction" class="testAction">
在struts.xml中action指定的class像上面這種方式指定全類路徑名的話,這時,不論spring配置文件中的<bean id="loginAction" class="org.xxxxx.action.LoginAction"></bean>有沒有指定<property name="testService" ref="testService"/>,只要有<bean id="testService" .../>存在,並且Action中有相應的set方法,當實例化Action類時,會一併將service的實例注入
如果<action name="testAction" class="testAction">這裏的class指定spring配置文件中的bean的id,則不會出現testService自動注入問題,而是根據<bean id="testAction" class="com.xxxxx.action.TestAction"></bean>有沒有指定<property name="testService" ref="testService"/>來決定,有指定則實例化Action類時,會一併將testService實例注入,沒有配置service則爲空