Struts2和Spring進行整合

Struts2整合Spring,整合方式一:

動作類還是Struts2負責管理,只是向Spring容器要service的實例

  • 0、拷貝jar包

這裏寫圖片描述

  • 1、搭建Spring的web環境
    WEB-INF下web.xml文件
 <!-- web中繼承Spring核心容器 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  • 2、搭建Struts2的開發環境
    WEB-INF下web.xml文件
<!-- 配置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>

WEb-INF下的applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean name="myservice" class="com.itstar.service.impl.MyserviceImpl">
        <property name="dao" ref="personDao"></property>
    </bean>
    <bean name="personDao" class="com.itstar.dao.impl.PersonDaoImpl"></bean>
</beans>

struts.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>

    <constant name="struts.devMode" value="true"></constant>
<package name="p1" extends="struts-default">
<action name="demo1" class="com.itstar.action.Demo1Action" method="demo1">
<result name="success" > success.jsp</result>
</action>
</package>


</struts>
  • **3、拷貝Struts2和Spring的插件過來。struts2-spring-plugin-2.3.15.3.jar
    **
  • *4、通過配置文件替換調用ObjectFactory(不用做,struts2-spring-plugin-2.3.15.3.jar)
  • **
  • 業務層接口
package com.itstar.service;

public interface Myservice {
    void save();
}
  • 業務接口實現
package com.itstar.service.impl;

import com.itstar.dao.PersonDao;
import com.itstar.dao.impl.PersonDaoImpl;
import com.itstar.service.Myservice;

public class MyserviceImpl implements Myservice {
    private PersonDao dao;

    public void setDao(PersonDaoImpl dao) {
        this.dao = dao;
    }

    @Override
    public void save() {

        dao.save();

    }

}
  • dao層接口
package com.itstar.dao;

public interface PersonDao {
    void save();
}
  • dao層實現
package com.itstar.dao.impl;

import com.itstar.dao.PersonDao;

public class PersonDaoImpl implements PersonDao {

    @Override
    public void save() {
        System.out.println("保存到了數據庫");

    }

}
  • Action
package com.itstar.action;


import com.itstar.service.Myservice;
import com.opensymphony.xwork2.ActionSupport;

public class Demo1Action extends ActionSupport {
    private Myservice myservice;


    public Myservice getMyservice() {
        return myservice;
    }


    public void setMyservice(Myservice myservice) {
        this.myservice = myservice;
    }

    public String demo1() {
        myservice.save();
        return SUCCESS;
    }
}
  • WebRoot下創建
    -success.jsp

-運行到tomcat,訪問http://localhost:8080/struts_StrutsAndSpring/demo1

這裏寫圖片描述

-整合方式二:動作類也交給Spring管理
在applicationContext.xml中加入

<bean name="demo1Action" class="com.itstar.action.Demo1Action"
        scope="prototype">
        <property name="myservice" ref="myservice"></property>
    </bean>`

struts.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>

    <constant name="struts.devMode" value="true"></constant>
    <package name="p1" extends="struts-default">
        <action name="demo1" class="demo1Action" method="demo1">
            <result name="success"> success.jsp</result>
        </action>
    </package>


</struts>

執行結果一樣
-運行到tomcat,訪問http://localhost:8080/struts_StrutsAndSpring/demo1

這裏寫圖片描述

發佈了10 篇原創文章 · 獲贊 11 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章