Spring集成struts(2)

Struts 2与Spring集成编程 Struts 2是一个基于MVC(模型-视图-控制器)模式的Web应用程序框架,而Spring是一个轻量级的Java开发框架,提供了广泛的功能,包括依赖注入和面向切面编程。将Struts 2与Spring集成可以充分发挥它们各自的优势,提供更灵活和可扩展的开发体验。通过将这两个强大的框架结合起来,我们可以充分利用它们各自的优势,实现灵活和可扩展的Java Web应用程序开发。在本文中,我们将详细介绍如何将Struts 2与Spring集成,并提供相应的源代码示例。然后,我们可以在Action的方法中使用。 阅读详情
 

2. 覆盖 RequestProcessor

  将 Spring 从 Struts 动作中分离是一个更巧妙的设计选择。分离的一种方法是使用 org.springframework.web.struts.DelegatingRequestProcessor 类来覆盖 Struts 的 RequestProcessor 处理程序,如清单 2 所示:

  清单 2. 通过 Spring 的 DelegatingRequestProcessor 进行整合

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
 <form-beans>
    <form-bean name="searchForm"
      type="org.apache.struts.validator.DynaValidatorForm">
               <form-property name="isbn"    type="java.lang.String"/>
    </form-bean>
 
  </form-beans>

 <global-forwards type="org.apache.struts.action.ActionForward">
     <forward   name="welcome"                path="/welcome.do"/>
     <forward   name="searchEntry"            path="/searchEntry.do"/>
     <forward   name="searchSubmit"           path="/searchSubmit.do"/>
 </global-forwards>

 <action-mappings>
    <action    path="/welcome" forward="/WEB-INF/pages/welcome.htm"/>
    <action    path="/searchEntry" forward="/WEB-INF/pages/search.jsp"/>
    <action    path="/searchSubmit"
               type="ca.nexcel.books.actions.SearchSubmit"
               input="/searchEntry.do"
               validate="true"
               name="searchForm">
              <forward name="success" path="/WEB-INF/pages/detail.jsp"/>
              <forward name="failure" path="/WEB-INF/pages/search.jsp"/>
    </action> 

 </action-mappings>

 <message-resources parameter="ApplicationResources"/>

 <controller processorClass="org.springframework.web.struts.
   DelegatingRequestProcessor"/> |(1)

 <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
      value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
 </plug-in>


 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="csntextConfigLocation" value="/WEB-INF/beans.xml"/>
 </plug-in>
 
</struts-config>

我利用了 标记来用 DelegatingRequestProcessor 覆盖默认的 Struts RequestProcessor。下一步是在我的 Spring 配置文件中注册该动作,如清单 3 所示:

  清单 3. 在 Spring 配置文件中注册一个动作

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
  "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
  <bean id="bookService" class="ca.nexcel.books.business.BookServiceImpl"/>

  <bean name="/searchSubmit"
    class="ca.nexcel.books.actions.SearchSubmit"> |(1)
     <property name="bookService">
        <ref bean="bookService"/>
     </property>
  </bean>
</beans>

  注意:在 (1) 处,我使用名称属性注册了一个 bean,以匹配 struts-config 动作映射名称。SearchSubmit 动作揭示了一个 JavaBean 属性,允许 Spring 在运行时填充属性,如清单 4 所示:

  清单 4. 具有 JavaBean 属性的 Struts 动作

package ca.nexcel.books.actions;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;

import ca.nexcel.books.beans.Book;
import ca.nexcel.books.business.BookService;

public class SearchSubmit extends Action {
 
  private BookService bookService;
  public BookService getBookService() {
    return bookService;
  }

  public void setBookService(BookService bookService) { | (1)
    this.bookService = bookService;
  }

  public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {

    DynaActionForm searchForm = (DynaActionForm) form;
    String isbn = (String) searchForm.get("isbn");
  
  Book book = getBookService().read(isbn.trim());  |(2)

    if (null == book) {
      ActionErrors errors = new ActionErrors();
      errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("message.notfound"));
      saveErrors(request, errors);
      return mapping.findForward("failure") ;
  }

      request.setAttribute("book", book);
      return mapping.findForward("success");
  }

}

  在清单 4 中,您可以了解到如何创建 Struts 动作。在 (1) 处,我创建了一个 JavaBean 属性。DelegatingRequestProcessor自动地配置这种属性。这种设计使 Struts 动作并不知道它正被 Spring 管理,并且使您能够利用 Sping 的动作管理框架的所有优点。由于您的 Struts 动作注意不到 Spring 的存在,所以您不需要重写您的 Struts 代码就可以使用其他控制反转容器来替换掉 Spring。DelegatingRequestProcessor 方法的确比第一种方法好,但是仍然存在一些问题。如果您使用一个不同的 RequestProcessor,则需要手动整合 Spring 的 DelegatingRequestProcessor。添加的代码会造成维护的麻烦并且将来会降低您的应用程序的灵活性。此外,还有过一些使用一系列命令来代替 Struts RequestProcessor 的传闻。这种改变将会对这种解决方法的使用寿命造成负面的影响。

Lama:基于傅立叶卷积的分辨率鲁棒性大掩模修复 为了缓解修复网络和损失函数都缺乏有效的感受野这个问题,提出了大掩模修复(LaMa)。LaMa基于一种新的修复网络架构,该架构使用快速傅立叶卷积(FFC),具有图像范围的感受野;高感受野感知损失;大型训练掩码,释放前两个组件的潜力。 阅读详情

相关推荐

项目计划书、规划文档模板

项目计划书、规划文档模板 最近通过项目实践经历,整理出的一套项目计划书(仅供自己参考梳理思路使用) 有喜欢的文末加VX 辛苦码字如有转载请标明出处谢谢!——木研 更新的简版项目规划文档! 原版文件请+vx :baierfa ...

weixin_43194923的博客 991

Struts2+Spring集成合并

前边单独总结了Struts2,Spring和Ibaits框架了,那么怎么结合使用呢?这次先来看一下Sturts2和Spring的集成合并。其实挺简单的,就是导入各自的jar包以及连接彼此的jar包,分好彼此的工作就可以了。     好看一下Struts2+Spring的集成方案!           Struts2和Spring集成有两种方案,是根据action的创建来划分的!

学会改变自己——才能突破 2万+

解决 python2.7中 ImportError: No module named Crypto.Signature

我的解决办法,先查看有没有安装 pip,直接执行pip 回车 没有出现null什么的就安装了,如果没有安装去其他博客哪里看一下,正常情况是默认就有的,然后使用。发现我自己也不会啊,就百度看看,想着网上的解决方法一大片,但是都是废话,能用的没有几个,而且能安装的没有几个。这个里面的python2、3就是系统里面的python版本,直接跟我这样就可以了除非版本不一样,也就是没有这个版本。就可以使用了,第一个应该是卸载之前的,然后重新安装,我的就是这样解决的。就比如我的,我现在使用的 python2.7。

记录一下 1611

Spring和Struts2集成

推荐两篇博客:集成的大致思路大致都是如此那就是谁来创建Action, Struts来创建Action; Spring来创建Action, 1,Struts2和Spring集成合并 2,Spring和Struts2集成的两种方式方式1:Action由Struts2框架负责创建;Service由Spring框架负责创建,提供了jar包:struts2-spring-plugin-2.1.8.1.ja

ManagementAndJava的博客 621

西门子S7-1200控制伺服/步进电机方法与接线(全)

西门子S7-1200控制伺服/步进电机方法与接线(全) 伺服/步进电机在非标自动化控制中十分常用,但作者发现在各类开源网站上很少有人做西门子1200PLC控制伺服/步进电机的教程,于是今天想着跟大家分享一下。 本文共分为一下几个四个内容。 文章目录西门子S7-1200控制伺服/步进电机方法与接线(全)前言一、准备二、接线1.PLC接线:2.伺服接线:3. 步进电机的接线:三、代码组态代码四、可能出现的问题 前言 工程控制常用到三项异步电机、直流电机等,但他们都无法准确的控制电机角度;于是有了步进电机、

weixin_46060068的博客 7万+

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

Struts 2 + Spring集成示例

下载它– Struts2-Spring-Integration-Example.zip 在本教程中,它显示了Struts 2和Spring之间的集成。 1.项目结构 这是本教程的项目文件夹结构。 2. Struts 2 +弹簧插件 要集成Struts 2和Spring,请获取“ struts2-spring-plugin-xxx.jar ”库并将其包括在您的项目类路...

一名可爱的技术搬运工 268

Python 复现AlexNet框架代码

【代码】Python 复现AlexNet框架代码。

Quintin 2422

Struts2学习:在struts2中集成Spring

Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术。所谓依赖注入,就是指将创建对象以及协议依赖对象之间合作的责任从对象自身中转移到“工厂”中去,这个“工厂”通常由IoC容器提供。Struts2与Spring的集成要用到Spring插件包,这个包是同Struts2一起发布的。Spring插件是通过覆盖(override)Struts2的ObjectFac

鱼与飞鸟 2650

【本地部署实战】LM Studio深度使用指南:从环境搭建到模型调优

LM Studio通过极简的操作流程和强大的生态兼容性,让本地部署大模型成为可能。随着M4芯片的发布和CUDA 12.0的优化,未来本地化AI开发将迎来新的爆发点。建议开发者关注官方Discord社区(https://discord.gg/lmstudio)获取最新模型支持信息。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 8755

N32G430学习笔记11- systick使用函数-延时函数

N32学习笔记11- systick使用函数-延时回调函数-延时函数

Car12 1417

struts2集成spring3的原理分析

Struts2与Spring进行集成的主要是为了使用 Spring的依赖注入和控制反转特性来实例struts2的action对象和注入action所依赖的对象。 它们的集成方法非常简单,只需要在项目的类路径中加入struts2的spring插件包,无需额外配置。当然web.xml不能初始struts和spring的初始化配置。 web.xml中的struts、spring配置具体如下:

荔子——一路走来 568

Matlab仿真:均匀面阵方向图、均匀线阵方向图、均匀圆阵方向图

其中,阵列方向图是评价阵列性能的重要参数之一。均匀面阵由若干个相同的阵元构成,阵元间等距排列,阵元的方向图形状为一个圆盘。均匀线阵由若干个相同的阵元构成,阵元间等距排列,阵元的方向图形状为一个矩形。本文将采用Matlab进行仿真,分别实现均匀面阵方向图、均匀线阵方向图和均匀圆阵方向图,并对三种阵列进行比较分析。通过以上代码仿真,我们可以对均匀面阵、均匀线阵和均匀圆阵进行方向图的绘制,进一步分析不同阵列在天线性能方面的差异。Matlab仿真:均匀面阵方向图、均匀线阵方向图、均匀圆阵方向图。

2301_79326857的博客 3439

Struts2与Spring集成

       最近我一直在考虑一个问题,华为的BME框架与裸奔的Struts2集成Spring到底差别在哪里呢?这两者在使用方式上基本相同,由于多次直接使用BME框架来开发MTV Portal系列项目,觉得BME框架整合集成Spring和Struts2做得相当好,使用比较方便,由于无法直接看到BME的源代码,遂决定对比一下在具体使用上BME框架与直接使用Struts2集成Spring的异同点,借此

张兆坤 4531

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

spring集成struts2

转载地址:http://javeye.iteye.com/blog/940122  点击打开链接   在用spring集成struts时遇到的问题。   如果想用sprng 托管struts的action,需要引用struts2插件struts2-spring-plugin,该插件目录下会有一个配置文件strtus-plugin.xml, 该插件引入工程后,会自动设置Struts的Objec

醉翁的专栏 522

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

spring和struts2的集成

Spring②指定配置文件在web.xml上配置好spring和struts2其他监听器和过滤器jar包或者依赖xml文件的导入struts.xmlspring.xml三级目录 指定配置文件 以下基础,在已经创建好maven项目上。 在web.xml上配置好spring和struts2 <!-- 指定spring配置文件所在的路径 --> <context-param> <param-name>contextConfigLocation</pa

qq_46119030的博客 1458

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java struts spring_在Struts2中集成Spring详细讲解

Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术。所谓依赖注入,就是指将创建对象以及协议依赖对象之间合作的责任从对象自身中转移到“工厂”中去,这个“工厂”通常由IoC容器提供。Struts2与Spring的集成要用到Spring插件包,这个包是同Struts2一起发布的。Spring插件是通过覆盖(override)Struts2的ObjectFacto...

weixin_42327217的博客 455

Spring IBatis Struts2 集成之二:Spring与Struts2集成

接首上一篇《Spring IBatis Struts2 集成之一:Spring与IBatis集成 》,本篇写Spring与Struts2的集成。 集成Spring  Struts2 的整个过程如下: 引入所有需要的*.jar文件。配置web.xml。配置strut

tony的专栏 1059

使用Maven配置Struts2 集成Spring

使用Maven配置Struts2 集成Spring上篇文章介绍了如何配置Struts2,但是Struts和Spring是怎么集成的呢,他们关联的配置是什么,带着这些疑问,我又开始找各种资料。开此文以记录。

飓风 4177

Struts 2 + Spring 集成

Download it – Struts2-Spring-Integration-Example.zip In this tutorial, it shows the integration between Struts 2 and Spring. 1. Project Structure Here’s the project folder structure of this

Stone的专栏 892

Struts 2 + Spring + Hibernate集成示例

下载它– Struts2-Spring-Hibernate-Integration-Example.zip 在本教程中,它显示了“ Struts2 + Spring + Hibernate ”之间的集成。 在继续之前,请确保检查以下教程。 Struts 2 + Hibernate集成示例 Struts 2 + Spring集成示例 Struts 1.x + Spring + H...

一名可爱的技术搬运工 377

在Struts2中集成Spring详细讲解

      Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术。 所谓依赖注入,就是指将创建对象以及协议依赖对象之间合作的责任从对象自身中转移到“工厂”中去,这个“工厂”通常由IoC容器提供。  Struts2与Spring的集成要用到Spring插件包,这个包是同Struts2一起发布的。Spring插件是通过覆盖(override)St

大齐的学习笔记 966

Struts2 + Spring 2 集成配置

英文内容来源:http://struts.apache.org/2.0.6/docs/spring-plugin.htmlAdded by ctran, last edited by Ted Husted on Feb 04, 2007  (view change) 500){this.resized=true

冰加点可乐的专栏 5167
上一篇: Spring集成struts (1)
下一篇: Spring集成struts(3)
eyejava
博客等级 码龄20年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值