集成Spring和Struts的实例

本文想通过一个简单的实例阐述如何集成Spring和Struts。

1.Struts和Spring

Struts 代表了MVC第二类架构的实现,在Struts中最重要的组件是 ActionServlet,Action和 ActionForm 子类,ActionServlet 代表controller ,他基于配置文件接受请求和 把这些请求转发到相应的ActionForm和Action子 类。 ActionForm把用户输入的数据传送到Action,Action调用商务层组件完成 必要的操作,最后提交到view。ActionServlet使用一个配置文件(struts- config.xml)加载Action子类的定义用以接受用户请求,基于请求URL, controller 找到一个action定义去接受这个请求,Struts构件处理用户请求, 检查配置文件, 完成相应的动作。

Spring是一种轻量级的容器,它使得使用一个外部XML配置文件非常容易绑定 对象,每个对象能够通过列出JavaBean属性得到一个依赖 对象的指针,通过绑定 XML配置文件使剩下的工作更加简单。依赖注入(DI)是非常强大的功能,Spring 支持可插拔的事务管理器,提供事物管理方式更 多的选择. 它集成了持久性的 架构同时也提供了一个统一的exception 分类,Spring也提供面向方面(AOP)编 程的简单机制。

2.Struts和Spring的集成

将Struts应用集成到Spring框架可以采用多种方法,首先Spring明显地被设 计用于解决JEE的现实问题,如复杂性,性能低下,可测试性及其他;第二, Spring框架包括一个AOP实现让你可以使用面向方面的程序设计技术;第三, Spring 框架可以能够非常容易地管理和协调Struts;和Struts类似,Spring也包 含MVC 实现,两个架构都有优缺点,Struts是MVC最重要的架构,很多开发团队学 会了依靠Struts在规定时限内开发出高质量的软件,因此开发团队宁愿 集成 Spring的功能也不愿意转到Spring MVC;好消息是Spring的结构允许你集成 Struts Web 框架、基于Spring的业务层和持久层,我们的方法是应用Spring中 的ActionSupport类去集成Struts。

3.加载应用的context

首先我们需要使用Spring中的ContextLoaderPlugin为Struts ActionServlet 去装载Spring应用的上下文,简单在struts-config.xml 文件中增加plug-in, 如下(1)所示:

﹤ ?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="cardno" 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=" com.infotek.Creditcard.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"/﹥
﹤ 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"﹥ (1)
﹤ set-property property="contextConfigLocation" value="/WEB- INF/beans.xml"/﹥
﹤ /plug-in﹥
﹤ /struts-config﹥

时间: 2024-12-03 05:16:00

集成Spring和Struts的实例的相关文章

Struts Spring Hibernate (SSH) 整合实例

首选创建web.xml 主要是配置Struts的ActionServlet和Spring的字符过滤器 <?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="

Dubbo集成Spring与Zookeeper实例

Dubbo最佳实践 使用Dubbo结合Zookeeper和Spring, 是使用比较广泛的一种组合,下面参考官方文档,做个简单的示例,一步步搭建一个使用dubbo结合Zookeeper和Spring的Demo工程. 代码已经上传到github,地址:https://github.com/bingyue/dubbodemo 1.集成Zookeeper (1)安装Zookeeper (2)启动Zookeeper服务 2.配置Dubbo的管理界面 Dubbo官方提供了几个管理工具,包括管理控制台dub

spring和struts、hibernate的集成

问题描述 spring和struts.hibernate的集成原理是什么?或者说spring和struts.hibernate是怎么集成的??? 解决方案 解决方案二:你要文档?解决方案三:有文档更好谢谢!!!解决方案四:在这里发帖还不如直接谷歌呢,一大堆资料够研究半天了

shiro 集成 spring struts mybatis 权限查看不同的页面

问题描述 shiro 集成 spring struts mybatis 权限查看不同的页面 我搭了个框架,然后也判断了跳转,,现在我想要就是,分前台和后台,,前台 user和admin 权限能看,后台 admin 才能进去数据库改如何设计?简单点的吧,我在学习shiro ,最好能给我个demo ,谢谢了

shiro 集成 spring struts mybatis 如何根据权限跳转前后台

问题描述 shiro 集成 spring struts mybatis 如何根据权限跳转前后台 shiro 集成 spring struts mybatis 如何根据权限跳转前后台

请教一下大家Spring与Struts集成的问题

问题描述 大家好,小弟之前是做后台和应用的,最近因为项目需要,要做WEB应用的开发.在网上搜集了很多资料,也了解了一些MVC框架,经常看到Spring与Struts集成的,但一直没太明白,这样集成的好处在哪儿?麻烦各位大神帮忙解答一下这个疑问,最好是给一个实际的例子.谢谢了! 解决方案 SSH ,三个框架,可以单独分开,也能组合在一起.Spring 的IoC可以说粘合剂,通过 Spring 可以管理 Struts2 的 action ,而之后action用到的其他对象(如 Service) 可以

Spring,hibernate,struts经典面试笔试题(含答案)_java

本文讲述了Spring,hibernate,struts经典面试笔试题及其参考答案.分享给大家供大家参考,具体如下: 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: ① . 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代

整合Spring与Struts的几种方法

Spring与Struts对Model-View-Controller模式均提供了很好的支持.相比之下,Struts是一个比较单纯的MVC框架,在实际应用中,开发人员更喜欢使用Struts完成MVC的设计,因而在有必要对Spring与Struts进行整合. 整合的关键点在于:将Struts中Action的实例生成不再由Struts自己负责,而交于Spring容器去管理.因此,进行整合的一个技术前提是Struts中作为Controller的ActionServlet必须能够装载Spring的应用程

Spring与Struts的结合运用

  Jakarta-Struts是Apache软件组织提供的一个开源项目.它为Java Web应用提供了基于Model-View-Controller的MVC框架,尤其适用于开发大型可扩展的Web应用.尽管基于Java的MVC框架层出不穷,事实上Spring的MVC模型也提供了驱动应用系统Web层的能力,但Jakarta-Struts仍然是所有这些框架中的佼佼者.     Spring是一个轻量级(大小和系统开支的角度)的IoC和AOP容器.它力图简化J2EE开发即J2EE without EJ