Struts2整合Spring
1 Struts2自身创建Action类 2 Spring创建Action类
Struts2管理Action类
ProductAction.java
package action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import domain.Product;
import service.ProductService;
/**
* 商品管理的Action类
*/
public class ProductAction extends ActionSupport implements ModelDriven<Product>{
// 业务层注入DAO的类
private ProductService productService;
public void setProductService(ProductService productService) {
this.productService = productService;
}
private Product product;
// Struts2和Spring整合过程中按名称自动注入的业务层类
@Override
public Product getModel() {
return product;
}
}
struts2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 1 Struts2自身创建Action类 创建Action默认是多例(与Spring管理Action不同) -->
<package name="mooc" extends="struts-default" namespace="/">
<action name="product_*" class="action.ProductAction" method="{1}"/>
</package>
</struts>
使用Spring管理Action类
application.xml
<!-- 2 Spring创建Action类 scope="prototype"创建Action是多例(morning单例) -->
<bean id="productAction" class="action.ProductAction" scope="prototype">
<!-- Action交Spring管理,那么就需要手动注入Service -->
<property name="productService" ref="productService"></property>
</bean>
在struts2.xml文件中,action的class值传入application配置对应的Action的id就可以
<package name="mooc" extends="struts-default" namespace="/">
<action name="product_*" class="productAction" method="{1}"/>
</package>