创建一个Action
public class IndexAction extends ActionSupport {
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public String index() {
System.out.println("IndexAction index()");
System.out.println(userService);
return SUCCESS;
}
}
在struts.xml中配置Action
<package name="index" namespace="/index" extends="struts-default">
<!-- 2.class属性配置为Spring中的name值 -->
<action name="IndexAction_*" class="com.zjl.web.action.IndexAction" method="{1}">
<result name="success">/index.jsp</result>
</action>
</package>
整合到Spring中
以上为Struts2中的单独配置,下面将Struts2整合至Spring中
- 在struts.xml中配置常量,将Action的创建交给Spring容器
<!-- 1. 整合Struts2,配置常量
struts.objectFactory = spring 将action的创建交给spring容器,默认关闭
struts.objectFactory.spring.autoWire = name spring负责装配Action依赖属性,默认开启
-->
<constant name="struts.objectFactory" value="spring"></constant>
- 在applicationContext.xml中配置Bean
<!-- Struts2的整合 -->
<!-- Action作用范围必须是多例的,这样符合Struts2的架构 -->
<bean name="indexAction" class="com.zjl.web.action.IndexAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
<bean name="userService" class="com.zjl.service.UserServiceImpl"></bean>
- 修改struts.xml中action的class属性
<!-- 2.class属性配置为Spring中的name值 -->
<action name="IndexAction_*" class="indexAction" method="{1}">
<result name="success">/index.jsp</result>
</action>