Strut + Spring 实践
来源:互联网 发布:如何优化直通车关键词 编辑:程序博客网 时间:2024/04/28 16:20
Spring + Struts 整合应用实践
一、工程的创建
本次实践所用的Strut2版本为2.2.1.1。
以下为配置步骤:
1、导入struts的自身支持包
在下载得到的Struts2 的lib目录下,有着许许多多的jar包,一般的Web工程只需要引入struts2-core-2.2.1.1.jar,xwork-core-2.2.1.1.jar,ognl.jar,freemaker-2.3.16.jar,commons-file-upload-1.2.1.jar,commons-io-1.3.2.jar,javassist-3.7.ga.jar等几个包即可。曾经在书上看到过只需引进前四个包即可,但是经过我自己的实践,只导入前四个包的情况下,会出现classNotFound的exception,这可能是struts2版本不同导致(书中的struts2版本是2.0.9)。
2、导入struts对spring的支持包struts2-spring-plugin-2.2.1.1.jar。
3、导入spring相关包
这一步中特别注意的是不要把commons-logging.jar包遗漏掉,不然也会发生ClassNotFound的异常。
4、整个工程图如下:
二、Struts相关配置与调试
2.1 配置
Struts相关配置包括了Action类的编写(在struts中,Action和FilterDispatcher是控制器的组成部分,Action类主要的作用在于调用业务逻辑功能并分发结果页面给用户)、web.xml以及struts.xml的编写。这里在工程中配置一个简单的Action例子:
HelloStruts中execute()方法放回了一个success字符串,其实这里对应的是在struts.xml中配置的相应action中result属性中对应的name属性为“sucess”的结果页面。这里给出struts.xml的内容:
从上面看出我们可以看到name=“success”的值是/example/success.jsp,也就是说当在action类中返回success时,会将该页面作为结果页面返回给用户。success.jsp 页面如下:
最后,就是web.xml的编写:
从上图可以看到,其实struts2是通过在服务器上通过增加一个过滤器来嵌入到应用中的,FilterDispatch是struts2中控制器的组成部分。
2.2 调试
编写完上述文件后,我们就可以在tomcat中部署我们的web应用了。部署完成后再浏览器中输入http://localhost:8080/Struct2Test/hello。如果能够看到Welcome to Struts则说明我们的struts部署成功了。如果不成功,请仔细检查以上的步骤是否正确。
三 struts2 与 Spring的整合
上面只是单纯在Web项目中应用到了Struts 框架,接下来我们来看看struts2是如何跟Spring整合在同一个Web项目中的。
3.1 增加Spring配置
首先,在HelloStruts类中增加userName的属性以及相应的Getter与Setter方法,下面我们将会通过Spring的IoC(控制反转)特性(也称依赖注入)为HelloStruts注入userName的值。修改后的类如下:
然后,在WEB-INF下增加applicationContext.xml文件,内容如下:
这里设置了一个Bean对象,id为helloAction,其对应的类为example.HelloStruts,同时也为这个对象的userName属性值设置了相应的值,这里为WaisonYe。
最后,修改web.xml,加入以下内容:
它为服务器添加了一个监听器,这样也使的struts2 与 spring 结合起来。如果没有这句话,服务器是启动不了的。另外,我们的applicationContext.xml的位置可以不放置在WEB-INF文件下,这时就需再在web.xml中增加以下说明:
3.2 修改struts2本身配置以整合Spring
在struts.xml文件中,加入以下一句话
这句话的作用在于把struts2里的action对象交由Spring容器来统一管理。
同时,将
改为:
这里class="helloAction"这里的helloAction不再是以前的真正的类的映射,如class="example.helloAction"
因为要交给spring管理,所以这里的helloAction必须要与 applicationContext.xml 中的
<bean id=" helloAction " class="example.helloAction" scope="prototype">
中的id=" helloAction " 保持一致,这里的class=" example.helloAction "就是真正的类的映射,
这样写,就表明了struts.xml中的helloAction 已交给 spring来进行管理。
最后,编写新的success2.jsp如下:
这里,从helloAction中读出了对应的userName属性值,并显示出来。
3.3 部署
最后,我们再次部署上述工程,再次输入上述网址,可以看到如下页面:Welcome here ,WaisonYe, the spring and struts are integrated
二、Struts相关配置与调试
2.1 配置
Struts相关配置包括了Action类的编写(在struts中,Action和FilterDispatcher是控制器的组成部分,Action类主要的作用在于调用业务逻辑功能并分发结果页面给用户)、web.xml以及struts.xml的编写。这里在工程中配置一个简单的Action例子:
- Strut + Spring 实践
- Strut&Spring&Hibernate结合开发举例
- Strut、Spring、Hibernate如何实现资源整合(SSH)呢?
- Spring 实践
- strut相关
- strut标签
- SSH-Strut
- 本人编著关于strut、spring、hibernate内容的书出版啦
- [学习]简单了解strut+spring+hibernate组合框架中个框架的特点
- Spring Security+Spring Actuator实践
- Spring 配置最佳实践
- spring+ibatis开发实践
- 实践Eclipse RCP +Spring
- Spring框架开发实践
- Spring &Mybatis 实践
- Spring Security3 实践
- Spring AOP实践
- spring+memcache实践实例
- 调试 Windows API
- 空白
- How to copy a datafile from ASM to a file system not using RMAN
- C# 写一个简单的应用程序
- Apache配置
- Strut + Spring 实践
- Android应用程序级变量(全局变量)
- HDU 1054 最小顶点覆盖
- C# 验证输入字符串是否为数字
- javaScript函数中执行C#代码中的函数
- SQL和Oracle通用的SQLHelper
- OpenCV中SIFT的实现
- Debian6安装fcitx4
- zfb笔