struts2与spring的整合

来源:互联网 发布:摩拜魔方人工智能平台 编辑:程序博客网 时间:2024/04/28 18:29

Spring与Struts框架整合的关键点是让struts框架action对象的创建,交给spring完成。
1、目录结构:
这里写图片描述

2、引入所需jar文件

1)引入struts .jar相关文件2)spring-core  相关jar文件3)spring-web 支持jar包     spring-web-3.2.5.RELEASE.jar       (spring中)             struts2-spring-plugin-2.3.4.1.jar    (struts中,让spring管理struts2必须要这个jar包)

3、Java类

UserAction.java

public class UserAction extends ActionSupport {    // springIOC容器注入    private UserService userService;    public void setUserService(UserService userService) {        this.userService = userService;    }    public String execute() {        userService.save();        return SUCCESS;    }}

UserService.java

public class UserService {    //IOC容器注入    private UserDao userDao;    public void setUserDao(UserDao userDao) {        this.userDao = userDao;    }    public void save() {        userDao.save();    }}

UserDao.ava

public class UserDao {    //仅做演示,此处没有操作数据库,    public void save() {        System.out.println("DB:保存用户");    }}

4、配置XML
web.xml 【核心过滤器: 引入struts功能,初始化spring的ioc容器】

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">    <!-- 1. spring 配置 初始化spring容器-->    <context-param>    <!--配置文件路径,默认在WEB-INF下的ApplicationContext.xml可以不用配置此处-->        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/classes/bean-*.xml</param-value>    </context-param>    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <!-- 2. struts配置 -->    <filter>        <filter-name>struts2</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <welcome-file-list>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list></web-app>

struts.xml 【struts路径与action映射配置】

<?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>    <package name="user" extends="struts-default">                <!--由于struts2交由spring管理,此处的class需要填写spring中Action的bean的id或name名称,不需要填写类的全路径( struts2-spring-plugin-2.3.4.1.jar负责) -->        <action name="user" class="userAction" method="execute">            <result name="success">/index.jsp</result>        </action>    </package></struts>

bean-action.xml 【spring ioc容器配置】

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:p="http://www.springframework.org/schema/p"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"    xsi:schemaLocation="http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans.xsd         http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd         http://www.springframework.org/schema/aop         http://www.springframework.org/schema/aop/spring-aop.xsd         http://www.springframework.org/schema/tx         http://www.springframework.org/schema/tx/spring-tx.xsd">    <!-- 指定action多例,默认为单例 -->    <bean id="userAction" class="cn.ss.test.action.UserAction" scope="prototype">        <property name="userService" ref="userService"></property>    </bean></beans>     

bean-service.xml

<bean id="userService" class="cn.ss.test.service.UserService">        <property name="userDao" ref="userDao"></property>    </bean>

bean-dao.xml

<bean id="userDao" class="cn.ss.test.dao.UserDao" scope="singleton" lazy-init="false"></bean>
0 0
原创粉丝点击