内容源自:spring整合struts2

一、spring框架对struts等表现层框架的整合原理 : 
使用spring的ioc容器管理struts中用于处理请求的Action 
将Action配置成ioc容器中的bean

延伸:spring对持久层框架/技术的整合原理 (封装) : 
提供模板类封装对应技术/框架的开发流程 
通过对模板类的使用,实现对传统开发流程的”代替”。

二、整合方式: 
插件方式 
struts2为了实现对spring框架整合,也提供了一个插件的配置文件struts-plugin.xml 
struts2-spring-plugin.jar

三、整合过程 
a 创建web工程,添加struts2框架支持(导入struts2自带必需包并在web.xml中配置 Filter)

b web工程添加spring框架支持(导入spring核心层jar包,以及struts2文件下下的包,在web.xml中配置Listener监听器和容器配置文件参数)

四、具体实例 

页面:

<form action="login.action" method="post">
        登录名:<input type="text"  name="loginname"/><br/>
        密码:<Input type="password" name="password"/><br/>
        <Input type="submit" value="登录"/>
    </form>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
    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_3_0.xsd">

  <filter>
    <filter-name>etoak</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>etoak</filter-name>
    <url-pattern>*.action</url-pattern>
  </filter-mapping>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>

  <display-name></display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

applicationContext.xml

<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-3.2.xsd">
    <!--
        每在工程添加一个用于处理请求的Action
        就需要将其配置成ioc容器中的bean

        1 action何时实例化?  容器启动时
            单独使用struts2时,action何时实例化?
                客户端每次提交请求时
        2 action实例化状态?  单例
            单独使用struts2时,非单例

        注意 : 为了保证action状态的一致性;在将Action
        配置成ioc容器中的bean对象时,需要将其状态设置为~非单例状态
     -->
    <bean id="action" class="com.etoak.action.LoginAction"
        scope="prototype"></bean>
</beans>

struts.xml

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <!--
        请求解析器 ActionProxy "login"
        请求调度者 ActionInvocation
     -->
    <package name="etoak" extends="struts-default">
        <!--
            请求和处理之间的映射关系如何形成
            <action name="请求" class="Action">
            class属性:指向的是ioc容器中某个bean的ID值
         -->
        <action name="login" class="action">
            <result name="success" type="redirect">/success.jsp</result>
        </action>
    </package>
</struts>

LoginAction.java

public class LoginAction extends ActionSupport {
    private String loginname;
    private String password;
    public String getLoginname() {
        return loginname;
    }
    public void setLoginname(String loginname) {
        this.loginname = loginname;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String execute() throws Exception {
        // 处理login.action请求 - DAO
        System.out.println("loginname--"+loginname);
        System.out.println("password--"+password);
        // 调用DAO    ioc依赖注入 (setter注入)
        return this.SUCCESS;
    }
}

Spring框架学习(5)spring整合struts2的更多相关文章

  1. Spring框架学习03——Spring Bean 的详解

    1.Bean 的配置 Spring可以看做一个大型工厂,用于生产和管理Spring容器中的Bean,Spring框架支持XML和Properties两种格式的配置文件,在实际开发中常用XML格式的配置 ...

  2. Spring框架学习02——Spring IOC 详解

    1.Spring IOC的基本概念 IOC(Inverse of Control)反转控制的概念,就是将原本在程序中手动创建对象的控制权,交由Spring框架管理.当某个Java对象(调用者)需要调用 ...

  3. Spring 框架学习(1)--Spring、Spring MVC扫盲

    纸上得来终觉浅,绝知此事要躬行 文章大纲 什么是spring 传统Java web应用架构 更强的Java Web应用架构--MVC框架 Spring--粘合式框架 spring的内涵 spring核 ...

  4. Spring框架学习之IOC(一)

    Spring框架学习之IOC(一) 先前粗浅地学过Spring框架,但当时忙于考试及后期实习未将其记录,于是趁着最近还有几天的空闲时间,将其稍微整理一下,以备后期查看. Spring相关知识 spri ...

  5. Spring框架学习总结(上)

    目录 1.Spring的概述 2.Spring的入门(IOC) 3.Spring的工厂类 4.Spring的配置 5.Spring的属性注入 6.Spring的分模块开发的配置 @ 1.Spring的 ...

  6. Spring框架学习一

    Spring框架学习,转自http://blog.csdn.net/lishuangzhe7047/article/details/20740209 Spring框架学习(一) 1.什么是Spring ...

  7. Spring框架学习笔记(5)——Spring Boot创建与使用

    Spring Boot可以更为方便地搭建一个Web系统,之后服务器上部署也较为方便 创建Spring boot项目 1. 使用IDEA创建项目 2. 修改groupid和artifact 3. 一路n ...

  8. Spring框架学习笔记(1)

    Spring 框架学习笔记(1) 一.简介 Rod Johnson(spring之父) Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架, ...

  9. spring框架学习(三)junit单元测试

    spring框架学习(三)junit单元测试 单元测试不是头一次听说了,但只是听说从来没有用过.一个模块怎么测试呢,是不是得专门为一单元写一个测试程序,然后将测试单元代码拿过来测试? 我是这么想的.学 ...

  10. Spring框架学习1

    AnonymouL 兴之所至,心之所安;尽其在我,顺其自然 新随笔 管理   Spring框架学习(一)   阅读目录 一. spring概述 核心容器: Spring 上下文: Spring AOP ...

随机推荐

  1. Vue.js—组件快速入门及Vue路由实例应用

    上次我们学习了Vue.js的基础,并且通过综合的小实例进一步的熟悉了Vue.js的基础应用.今天我们就继续讲讲Vue.js的组件,更加深入的了解Vue,js的使用.首先我们先了解一下什么是Vue.js ...

  2. 前端自动化gulp遇上es6从 无知到深爱

    Gulp是什么? Gulp是前端自动化的工具,但Gulp能用来做什么 1.搭建web服务器 2.使用预处理器Sass,Less 3.压缩优化,可以压缩JS CSS Html 图片 4.自动将更新变化的 ...

  3. 51nod 1295 XOR key-区间异或最大值-可持久化01Trie树(模板)

    1295 XOR key 2 秒 262,144 KB 160 分 6 级题   给出一个长度为N的正整数数组A,再给出Q个查询,每个查询包括3个数,L, R, X (L <= R).求A[L] ...

  4. AspNet5 Changes to [Activate] in beta-5

    最近在看AspNet Core相关的文章,其中有个TagHelper,看上善若水的博客“关于TagHelper的那些事”,其中有一句 下面来自上善若水的博客原文: 我们知道ASP.NET 5实现了依赖 ...

  5. Section One

    1.1.1 #include <iostream> using namespace std; int main() { int a,b,N; cin >> N; while ( ...

  6. UVA 147(子集和问题)

     Dollars New Zealand currency consists of $100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10 ...

  7. python--flask框架的安装和简单使用(转)

    原文地址:http://blog.csdn.net/xiaowu8858892520/article/details/54428196

  8. 【差分约束系统】【最短路】【spfa】CDOJ1646 穷且益坚, 不坠青云之志。

    求一个有n个元素的数列,满足任意连续p个数的和不小于s, 任意连续q个数的和不大于t. 令sum[i]表示前i项的和(0<=i<=n,sum[0]=0) 那么题目的条件可转化为: sum[ ...

  9. 【置换群】poj3270 Cow Sorting

    并不应该叫置换群……只是用到了置换而已,并没有群. 题解看这个吧,我就不写了:http://www.cnblogs.com/kuangbin/archive/2012/09/03/2669013.ht ...

  10. Highcharts做统计图。

    <script> $(function () { var areasplineData = [[1447916401000,3],[1447918201000,4]]; var typeR ...