Struts + Spring整合3种方法亲身实践(1)

Spring与Struts1的整合方式 Spring与Struts1的整合方式 无论您使用哪种技术,都需要使用 Spring 的 ContextLoaderPlugin 为 Struts 的 ActionServlet 装载 Spring 应用程序环境。就像添加任何其他插件一样,简单地向您的 struts-config.xml ... 阅读详情
 
Struts + Spring整合3种方法亲身实践(1)
 
由于最近要做一个项目,用到struts, spring, hibernate;之前我做项目,只用过struts ,hibernate(很落后的表现,呵呵!),所以呢下定决心,练了一把,先写一个最简单的struts程序,输入页面:input.do, 一个文本框,输入信息后,点确确定,跳转到另一页面,显示welcome,**,够简单了吧!为了开发简便快捷,我是在eclipse+myeclipse下完成的,下面我把代码贴出,再加点解释:
Struts-config.xml
<struts-config>
 <data-sources />
 <form-beans >
    <form-bean name="helloWorld" type="com.yourcompany.struts.form.HelloWorldForm" />
</form-beans>
<action-mappings >
    <action
      attribute="helloWorld"
      name="helloWorld"
      path="/helloWorld"
      scope="request"
      type="com.yourcompany.struts.action.HelloWorldAction">
      <forward name="show" path="/show.jsp" />
    </action>
    <action forward="/input.jsp" path="/input" />
</action-mappings>
<message-resources parameter="ApplicationResources" />
</struts-config>
很简单的一个结构,一个input.do进入的输入页面input.jsp,击点确定,跳转到helloworld.do,经他处理后,跳转到show, that’s OK!
 
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
 </servlet>
 <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 <jsp-config>
  <taglib>
       <taglib-uri>/tags/struts-bean</taglib-uri>
       <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
       <taglib-uri>/tags/struts-html</taglib-uri>
       <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>
 </jsp-config>
</web-app>
 
HelloWorldAction类:
package com.yourcompany.struts.action;
//节省长度,导入的类就不贴了
publicclass HelloWorldAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
           HttpServletRequest request, HttpServletResponse response) {
       HelloWorldForm helloworld=(HelloWorldForm)form;
       request.setAttribute("helloWorld", helloworld.getMsg());
       return mapping.findForward("show");
    }
}
HelloWorldForm类:
package com.yourcompany.struts.form;
publicclass HelloWorldForm extends ActionForm {
    privatestaticfinallongserialVersionUID = 1L;
    private String msg;
    public ActionErrors validate(ActionMapping mapping,
           HttpServletRequest request) {
       returnnull;
    }
publicvoid reset(ActionMapping mapping, HttpServletRequest request) {
    }
    public String getMsg() {
       returnmsg;
    }
    publicvoid setMsg(String msg) {
       this.msg = msg;
    }
}
 
input.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
 <head>
    <html:base />
    <title><bean:message key="title_input"/></title>
 </head>
 <body>
    <html:form action="/helloWorld" method="POST">
       <bean:message key="welcome"/><html:text property="msg"/>
       <html:submit>sumbit</html:submit>
    </html:form>
 </body>
</html:html>
 
show.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
 <head>
    <html:base />
    <title><bean:message key="title_show"/></title>
 </head> 
 <body>
    <bean:message key="input"/>"${helloWorld}"<br/>
 </body>
</html:html>
 
无论哪种方法都要在struts-config.xml里注册一下Spring插件:
在struts-config.xml中加上: (红色为加入部分)
 <message-resources parameter="ApplicationResources" />
 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
       <set-property property="contextConfigLocation"     value="/WEB-INF/applicationContext.xml" /> 
 </plug-in>
</struts-config>
为了体现Spring的IOC,我们再加多几个类:
一个接口:
package com.yourcompany.struts.action;
import com.yourcompany.struts.form.HelloWorldForm;
public interface HelloWorldService {
    public abstract String addMesg(HelloWorldForm helloworld);
}
 
实现这个接口的类:
package com.yourcompany.struts.action;
import com.yourcompany.struts.form.HelloWorldForm;
public class HelloWorldServiceImpl implements HelloWorldService{
 
    public String addMesg(HelloWorldForm helloworld) {
       return helloworld.getMsg();
    }
 
}
 
Spring的配置文件: (位置/WEB-INF/applicationContext.xml)
<?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="helloWorldService" class="com.yourcompany.struts.action.HelloWorldServiceImpl"></bean>
</beans>
准备工作完成,下一步开始整合
 
 
 
 
 
Struts2+MyBatis3+Spring2整合实战项目 Struts2 是一个用于构建 Java Web 应用的开源框架,它采用 MVC 设计模式将应用分为模型(Model)、视图(View)和控制器(Controller)。Struts2 通过配置文件或注解的方式实现视图组件和业务逻辑之间的分离。Struts2 为开发者提供了丰富的标签库,用于创建动态网页,同时与验证框架、拦截器模式等集成,提高了开发效率和应用的可维护性。MyBatis3是一个流行的持久层框架,它支持定制化SQL、存储过程以及高级映射。 阅读详情

相关推荐

Struts2与Spring框架的深入整合实践指南

Struts2框架是一个基于MVC模式的Java Web应用框架。核心概念包括Action类、Result、Value Stack以及拦截器链。工作原理是,用户发出请求后,Struts2接收请求并创建Action实例,通过拦截器链处理请求,最终调用Action的业务逻辑方法,并根据配置生成响应结果。@Service// 实现业务逻辑编写自定义拦截器的过程相对简单,我们只需要创建一个类实现接口即可。下面是一个示例代码,展示如何实现preHandle方法来打印日志:@Override。

weixin_30995917的博客 301

Spring学习笔记(四)----SSH整合

Struts2.1.6 + Spring2.5.6 +Hibernate3.3.2 1.     需要的jar包列表 jar包名称 所在位置 说明 antlr-2.7.6.jar hibernate/lib/required 解析HQL aspectjrt spring/lib/aspectj

海阔凭鱼跃,天高任鸟飞 794

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7001

Struts1.整合Spring的三种方法

下面的是STRUTS1 与 SPRING的结合。 使用 Spring 的 ActionSupport 类整合 Structs1.X, 使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor,将 Struts Action 管理委托给 Spring 框架装载应用环境:      无论您使用哪种技术,都需要使用

huanghm88的专栏 2345

Android应用隐私合规自动化检测:Frida与Camille实战指南

在移动应用安全与隐私合规领域,动态代码插桩技术已成为核心检测手段。其原理是通过运行时注入,实时监控和修改应用行为,从而绕过传统静态分析的局限。这项技术的核心价值在于能够精准捕获应用在运行时的敏感数据调用与网络传输行为,为隐私合规审计、安全测试提供直接证据。在实际应用场景中,它尤其适用于自动化检测违规收集个人信息、追踪数据流向等任务。本文聚焦于利用Frida这一动态插桩框架,结合Camille隐私合规检测工具集,构建自动化监控环境。通过注入JavaScript代码,实现对Android敏感API(如获取设备标

weixin_34254464的博客 388

[kriging](一)网上下载的kriging克里金的C++程序的初步调试

笔者在网上下载了一份克里金的C++程序,水平有限,正在逐步地调试中。 初步 克里金法现在在许多软件都已经有集成了,据笔者所知: arcgis : 看过有的arcgis培训视频里面简略介绍了里面的插值方法,有克里金。 surfer :笔者用过这个,效果很好。 gocad :听说有 landmark &jason :研究生时候用的专业的石油物探软件,里面有克里金法,万恶的开始。 pykrig...

FOREST优快云 5611

Struts1和Spring的整合

Struts 1 和 Spring 的整合注意是Struts 1.2.6 和 Spring 2.6的整合,感觉Struts 1现在使用的不多,不过了解下也无妨。步骤如下:1.首先在web.xml中启用ActionServlet,设置过滤的URL2.继承org.apache.struts.action.Action,实现Action层3.配置struts-config.xml,用于生成Action4.

cceking的博客 2711

别再只当代码阅读器了!手把手教你用Understand的实体定位器和信息浏览器,5分钟精准定位代码逻辑

本文深入解析Understand代码分析工具的高级功能,重点介绍实体定位器和信息浏览器的实战应用。通过5分钟快速定位代码逻辑的技巧,帮助开发者从代码阅读者升级为逻辑侦探,提升大型代码库的分析效率。文章包含过滤搜索、调用链追踪等实用方法,是掌握Understand核心功能的必备指南。

weixin_28745821的博客 292

Struts1SH整合

Spring2.5+Hibernate3.5+Struts1.3整合开发 为了避免出现jar包不兼容,或者重复加载的情况,先把jar包整理出来: hibernate核心安装包下的:            hibernate3.jar            lib/required/*            lib/optional/ehcache-1.2.3.jarhibernate 注解安装包下的:            lib/test/slf4j-log4j12.jarSpring安装包下的     

Bannings的专栏 5437

【YOLO 系列】基于YOLO V8的智能车载交通标志识别系统【python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍了基于YOLO V8构建智能车载交通标志识别系统的完整流程。从环境搭建、数据集准备、模型训练到PyQt5图形界面开发,提供了Python源码和实战代码,帮助开发者快速实现高精度、实时的交通标志检测应用,提升驾驶辅助系统的开发效率。

wdx012345的博客 966

手把手实现STM32+ESP8266+原子云服务器+手机APP应用——第三节-编写STM32程序实现STM32+ESP8266+原子云服务器+手机APP互相通信—远程数据传输及控制灯

接上一篇,本节使用原子云服务器。编写STM32程序实现STM32+ESP8266+原子云服务器+手机APP互相通信—远程数据传输及控制灯。使用的硬件包括:STM32F103(任意其他款系列也可以的)、正点原子ATK-ESP8266、LED灯。实现编写STM32程序代码来传输单片机数据到原子云服务器和手机APP进行显示,同时通过手机APP和原子云服务器可以远程控制单片机,例如本节实现远程点/灭灯,以此可以扩展开发更多的功能。本专栏本系列的相关文章可查看下面链接:

嵌入式阿齐Archie 8414

JavaWeb开发之SSH框架整合——Struts2+Spring3+Hibernate3三大框架的整合

Struts2+Spring3+Hibernate3导包 Struts2导包与配置 Struts2/apps/struts2-blank.war/WEB-INF/lib/*.jar 如下图所示: 导入与Spring整合的jar包 struts2-spring-plugin-2.3.15.1.jar  用于Struts2整合Springstruts2-json-plugin

3117

uniapp(全端兼容) - 最新详细实现预览pdf文件功能,uniapp安卓苹果app、H5网页、微信小程序、nvue等端打开本地或在线PDF文档进行预览,uniapp预览pdf教程(详细示例代码)

uni-app,pdf,打开预览PDF,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,uniapp预览PDF,App端 实现pdf文件预览,在app端怎么预览pdf,网页h5怎么预览pdf,pdf下载、上传和预览,H5预览pdf文件,小程序预览pdf,nvue平台怎么打开预览pdf呢,除了uni.opendocument还有什么方法打开,预览pdf的插件,pdf预览组件,uni-app实现PDF预览功能,app查看下载pdf文件,如何做pd

✅ 精选推荐文章 1万+

Struts1+Spring+Hibernate3.3整合笔记

ssh整合   ssh(struts+spring+hibernate) 三大框架配合使用来开发项目,是目前java ee 最流行的开发方式,必须掌握.     设计: 这我们通过一个实际的案例,来讲解整合 , 我们使用一个雇员薪资管理系统(crud) ,每加入一个框架,我们就测试通过 具体的步骤: 创建web项目   ①      先搞定spring ②      引入

MADE_Y 1992

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

struts2.3.3整合spring3.3.1

struts2.3.3整合spring3.1.1 一、整合jar包 (1)添加struts2插件jar包  struts2-spring-plugin-2.1.6.jar (2)添加struts2的jar (3)添加spring的jar (4)去掉重复及缺少的部份commons jar          整合完毕后jar包截图为:     二、在src下创建app

一位以IT为业余生活的穷人 1666

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Spring + Struts 框架整合

Spring + Struts 框架整合 项目 项目代码来源how2java 本博客简单记录一下学习框架整合的心得体会。 指定对象工厂 即使得Struts的action的创建交由Spring管理。 <constant name="struts.objectFactory" value="spring"/> Spring配置 在WEB-INF文件夹之下: 配置一个application...

xiabenshu的博客 261

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Struts 和 Spring 整合3种方法

整合 Struts 和 Spring与 Struts 相似,Spring 可以作为一个 MVC 实现。这两种框架都具有自己的优点和缺点,尽管大部分人同意 Struts 在 MVC 方面仍然是最好的。很多开发团队已经学会在时间紧迫的时候利用 Struts 作为构造高品质软件的基础。Struts 具有如此大的推动力,以至于开发团队宁愿整合 Spring 框架的特性,而不愿意转换成 Spring

JJ0320的专栏 451

Spring与Hibernate、Struts、Log4j整合

        SSH+Log4j是比较经典的Web解决方案,它们每一个框架都自成体系,致力于解决不同层次和领域的各种问题,把他们整合在一起可以发挥各自的专长,实现优势功能最大化。每一个框架在设计时就为不同的框架融合预留了解决方法,因此只要方法得当,这些框架是可以完美融合的。hibernate、struts和log4j之间并不存在很明显的交叉关联,因此框架整合主要是spring与hibernate、spring与struts、spring与log4j之间的整合,以下分别介绍说明。本文使用的框架版本分别为:s

boral_li的专栏 4528

Spring3.3——Spring注解配置、Spring+Struts2整合、s2sh整合

1、零配置 步骤: (1)在配置文件启用“零配置”。         使用元素 (2)为Spring Bean添加注解。            @Component:标注一个普通的Spring Bean类。如果不指定id,默认就该类的类名首字母小写作为id。                         @Controller:标注一个控制器组件类。

ack_Finding的博客 590

struts1和spring整合

转自:http://dev.youkuaiyun.com/author/hql638/35679289a9a94e4f97e999508df064db.html   为什么 Spring 这么了不起? Spring 的创立者 Rod Johnson 以一种批判的眼光看待 Java™ 企业软件开发,并且提议很多企业难题都能够通过战略地使用 IOC 模式(也称作依赖注入)来解决。当 Rod 和一个具有奉献精...

思维加速度 177

Struts.整合Spring的三种方法

关键字: struts1     使用 Spring 的 ActionSupport 类整合 Structs1.X, 使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor,将 Struts Action 管理委托给 Spring 框架 装载应用环境:       无论您使用哪种技术,都需要使用 S...

Ω半个草莓Ω 164

spring 整合 Struts1.X [转]

这篇博客摘自[http://blog.youkuaiyun.com/chendc201/article/details/8464008], 其中也有一些是自己增加的部分 . 第一步, 需要为 Struts 装载 Spring 应用上下文环境。有以下三种方式: 1) 在 struts-config.xml 中使用 Struts Plugin <plug-in className="org...

ddd77197的博客 411

3Spring整合struts2

1Spring整合Struts2 web应用中配置spring容器 首先在Struts2中整合Spring需要另外加入的包: struts2-spring-plugin-2.1.8.1.jar,spring.jar,log4j-1.2.15.jar 其中spring.jar是从下载的Spring包中的dist目录下。 struts2-spring-plugin.jar是在Struts2的

小飞虫 1705

spring+struts整合

一、整合中遇到的问题 1.struts与spring整合要用到struts2-spring-plugin包,它作用就是不让struts自己创建Action,而是让spring创建管理Action对象。 但是我在加了这个Jar包后,发现它自带了低版本的spring包,使用exclusion标签排除了问题Jar包,下面链接是具体操作: https://blog.youkuaiyun.com/weix...

金豆呀的博客 1715

Spring整合Struts2的方法

一、基本支持 通常我们整合Spring和struts2的目的是让Spring来管理struts2的控制器。也就是说把Action交由Spring来管理,利用IOC的特性把Action注入到业务逻辑中。 为此Spring提供了相应的监听器。通过注册 Servlet 监听器 ContextLoaderListener, Web 应用程序可以加载 Spring 的ApplicationContext

想作会飞的鱼的博客 642
上一篇: struts+spring整合测试
下一篇: Struts + Spring整合3种方法亲身实践(2)
ning0123456
博客等级 码龄20年 12粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值