上文说到搭建SSH环境所需三大框架的jar包,本篇博客将通过修改配置文件整合Struts和Spring,下篇博客整合Hibernate和Spring即可完成环境搭建。

  1、声明bean,新建TestAction.java,需要给类添加注解:@Controller 和 @Scope("prototype");

   “使用@Controller注解标识TestAction之后,就表示要把TestAction交给Spring容器管理,在Spring容器中会存在一个名字为"testAction"的action,这个名字是根据TestAction类名来取的。

   注意:如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的类名首字母小写,如果指定value【@Controller(value="TestAction")】或者【@Controller("TestAction")】,则使用value作为bean的名字。

  使用@Scope注解,@Scope("prototype")表示将Action的范围声明为原型,可以利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring 默认scope 是单例模式(scope="singleton"),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2 是要求每次次访问都对应不同的Action,scope="prototype" 可以保证当有请求的时候都创建一个Action对象。”

  2、添加Struts.xml内容,  在<package>下,添加如下配置

        <!-- 配置测试用的action当与spring整合,class=bean的名称(如果bean没有指定value,则首写字母要小写))  -->
<action name="test" class="testAction">
<result name="success">/test.jsp</result>
</action>

  3、在web.xml中配置Spring的监听器。

  

    <!-- 配置spring的用於初始化容器對象的监听器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>

  4、加一个整合的jar包。

  

 Spring与Struts2的整合成功了,只需要两步,一步是添加Spring的监听器,另一方面是添加整合的jar包。

  需要注意的是:要用@Controller注解标记对应表现层的Bean,也就是Action,就可把他交给Spring容器来管理了。具体的注意点上面已经说过了,很轻松就完成二者的整合了。

条理清晰的搭建SSH环境之整合Struts和Spring的更多相关文章

  1. 条理清晰的搭建SSH环境之整合Hibernate和Spring

    上篇博客整合了Struts和Spring,感觉很简单,这篇博客主要讲述Hibernate和Spring的整合. 如果说上篇博客中的整合是以为Spring的IOC可以管理对象,让Struts2里的对象管 ...

  2. 条理清晰的搭建SSH环境之添加所需jar包

    一.首先介绍要添加框架环境: JUnit Struts2 Hibernate Spring (1)配置JUnit /**-------------------------添加JUnit-------- ...

  3. Mac下maven工程的创建,并搭建SSH环境

    最近项目有用到maven,就特地学了一下.maven的一句话攻略就是,项目托管.帮你解决各种项目琐事:清理,导包....等等. 首先先到apach官网去下载一个maven的包,http://maven ...

  4. 搭建SSH环境之添加所需jar包

    一.首先介绍要添加框架环境: JUnit Struts2 Hibernate Spring (1)配置JUnit /**-------------------------添加JUnit-------- ...

  5. Linux Ubuntu从零开始部署web环境及项目-----搭建ssh环境(一)

    linux搭建ssh环境 1,用户登录 成功输入用户名和密码后 进入Ubuntu界面  2,配置网络 参考:http://blog.csdn.net/liu782726344/article/deta ...

  6. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(一): 搭建基本环境、整合 Swagger、MyBatisPlus、JSR303 以及国际化操作

    相关 (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y- ...

  7. Spring Boot 2.x(三):搭建开发环境(整合Spring Data JPA)

    为什么是JPA JPA虽然小众,但是足够优雅╮(╯_╰)╭,由于微服务的兴起,服务粒度的细化,多表联合的场景逐渐减少,更多的是一些简单的单表查询,而这正是JPA的强项所在.所以,以后的实战项目中我也会 ...

  8. (二)搭建SSH环境

    一.struts 1.添加jar包: commons-fileupload-1.3.1.jar,[文件上传相关包] commons-io-2.2.jar, commons-lang-2.4.jar , ...

  9. Maven搭建SSH环境

    一.新建maven项目 选中maven-aechetype-webapp group Id一般为公司域 :Artifact Id相当于项目名称 :version不需要更改:Package不使用默认,手 ...

随机推荐

  1. django 返回json数据

    from django.core import serializers @login_required def ajax_get_data(request): json_data = serializ ...

  2. EF中的1:0或1:1关系以及1:n关系

    先给出1:0关系 User表包括用户名和密码 public class User { public int ID { get; set; } public string UserName { get; ...

  3. [转]Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数

    oracle的分析函数over 及开窗函数 一:分析函数Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组 ...

  4. Mapreduce 进阶

    场景描述 订单需要封装成为一个bean 传入reduce,然后实现排序取出top1,或者分组求和 首先要实现排序就要实现comparable接口 要实现分组top1,那么"相同的bean&q ...

  5. Android——Android Studio导入SlidingMenu类库的方法

    Android Studio导入SlidingMenu类库的方法(其他类库应该也适用)   本篇文章主要介绍了"Android Studio导入SlidingMenu类库的方法(其他类库应该 ...

  6. 中国移动DNS IP地址大全(32个省)

    中国移动DNS IP地址,包括广东移动DNS,上海移动DNS,北京移动DNS,陕西移动DNS,江苏移动,山东移动DNS等共全国32个移动省份的DNS IP地址. DNS 用户数 国家 省份 地区 运营 ...

  7. wps不记录打开打开的文件

    “工具”中的“选项”后,进入选项界面,在“常规与保存”选项卡中把“最近文档管理列出文件”前面的勾取消或将后面的数字选为0.

  8. UK 更新惊魂记

    本文前提是.由于更easy安装各种webserver.数据库,redis缓存.mq等软件,笔者使用Ubuntu Kylin作为开发系统已经好长时间了. 而今天(2015-07-23)下午2时许,系统提 ...

  9. 【嵌入式】——ads1.2的安装注意事项

    安装完ads的时候会出现错误,因为还要安装License Installation Wizard. 下一步会出现这个 然后点击Browse... 找到ads1.2下的CRACK(crack)文件夹的L ...

  10. 【C】——extern

    直接上例子: 1.c #include<stdio.h> int main() { extern int a; a += ; printf("%d\n",a); tex ...