Spring 学习(三)与Struts整合

一、Spring与Struts框架整合

Spring负责对象创建,Struts负责用Action处理请求;因此,两种框架的整合效果是让Spring框架负责创建Struts框架的Action对象

二、Spring与Struts框架整合HelloWorld

1. 引入jar文件

struts框架:

commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-core-2.3.4.1.jar
xwork-core-2.3.4.1.jar

spring框架:

commons-logging-1.1.3.jar
spring-beans-3.2.5.RELEASE.jar
spring-context-3.2.5.RELEASE.jar
spring-core-3.2.5.RELEASE.jar
spring-expression-3.2.5.RELEASE.jar

spring-web:

spring-web-3.2.5.RELEASE.jar
struts2-spring-plugin-2.3.4.1.jar

2. 配置文件

1) web.xml




                
    
        struts
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
    
        struts
        /*
    

    
    
        contextConfigLocation
        
        /WEB-INF/classes/bean*.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

配置struts核心监听器和spring容器初始化以及servletContextListener

2) bean.xml

bean-dao.xml:

 

bean-service.xml:


        

bean-action.xml


        

3) struts.xml


    
        
        
            /index.jsp
        
    

这里需要注意,之前是在用户访问时由struts创建对象,这里我们有了spring,可以将创建对象userAction的工作交给spring

3. java实现

public class UserDao {
    public void save(){
        System.out.println("save into DataBase!");
    }
}

public class UserService {
    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    public void service(){
        userDao.save();
    }
}

public class UserAction extends ActionSupport{
    private UserService userService;
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
    public String execute(){
        userService.service();
        return SUCCESS;
    }
}

简单的流程是这样的:用户请求时,访问action,action对象由spring容器创建;在action访问到dao的过程中,所需要的依赖对象都是由spring创建的,执行完业务方法后,由action的返回值定位到index.jsp页面,和用户交互。当然,其中struts框架的过滤作用暂时没有很多体现,因为使用的都是默认的拦截器。

你可能感兴趣的:(Spring,spring,struts)