集成Struts2+Spring+Hibernate





第一种方案:让Spring创建Struts2的Action,不让Spring完全管理Struts2的Action

     Struts2 Action中的依赖对象,默认会根据名称自动装配





1、创建web项目





2、引入Struts2的依赖包,将依赖包拷贝到WEB-INF/lib下

* commons-logging-1.0.4.jar

* freemarker-2.3.15.jar

* ognl-2.7.3.jar

* struts2-core-2.1.8.1.jar

* xwork-core-2.1.6.jar

* commons-fileupload-1.2.1.jar



3、引入Spring的依赖包,将依赖包拷贝到WEB-INF/lib下

* spring.jar

* lib/aspectj/*.jar



4、引入hibernate相关依赖包,将依赖包拷贝到WEB-INF/lib下

* hibernate3.jar

* lib/*.jar



5、数据库驱动

* MySQl JDBC Driver



6、将Struts2和Spring集成的依赖包拷贝到WEB-INF/lib下

* struts2-spring-plugin-2.1.8.1.jar



7、在web.xml文件中配置StrutsPrepareAndExecuteFilter

    <filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>





    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    

8、提供struts.xml配置文件,提供必要属性的配置

* struts.i18n.encoding=GB18030

* struts.configuration.xml.reload=true

* struts.devMode=true   



9、提供Spring的配置文件

* applicationContext-service.xml

* applicationContext-dao.xml

* applicationContext-common.xml



10、提供hibernate.cfg.xml配置文件,提供log4j





11、在web.xml文件中配置Spring的ContextLoaderListener,创建BeanFactory

    <context-param>

    <param-name>contextConfigLocation</param-name>

    <!-- 

    <param-value>classpath:applicationContext-*.xml</param-value>

    -->

    <param-value>classpath:applicationContext.xml</param-value> 

    </context-param>

    

    <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>、

    

11、在web.xml文件中配置OpenSessionInViewFilter(需要放到Struts2的Filter前面)

<filter>

<filter-name>OpenSessionInViewFilter</filter-name>

<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

</filter>



<filter-mapping>

<filter-name>OpenSessionInViewFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>



12、提供用户添加表单和add_success.jsp





13、建立User实体类,编写hibernate映射文件,将映射文件加入到hibernate.cfg.xml中





14、建立UserDao和UserService,并进行实现





15、建立Struts2的Action,并配置到Struts2的配置文件中





16、在jsp中调用Action

第二种方案(推荐):

集成Struts2+Spring+Hibernate





第一种方案:让Spring创建Struts2的Action,Spring完全管理Struts2的Action

      将Struts2的Action配置到Spring的配置文件中





1、提供Spring配置文件,配置Struts2的Action

* applicationContext-action.xml



2、在Spring中必须注入Struts2中Action的的依赖对象

<bean id="addUserAction" class="com.bjpowernode.usermgr.web.action.AddUserAction" scope="prototype">

<property name="userService" ref="userService"/>

</bean>


!!!必须设置scope="prototype"





3、struts.xml配置文件需要修改,<action>标签中的class属性值和IoC容器中本次请求对应的Action的id值相同

<package name="user-package" extends="struts-default" namespace="/user">

<action name="add" class="addUserAction">

<result>/add_success.jsp</result>

</action>

</package>

集成Struts2+Spring+Hibernate_两种方案的更多相关文章

  1. struts2+spring的两种整合方式

    也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里 ...

  2. Spring Boot 配置文件密码加密两种方案

    Spring Boot 配置文件密码加密两种方案 jasypt 加解密 jasypt 是一个简单易用的加解密Java库,可以快速集成到 Spring 项目中.可以快速集成到 Spring Boot 项 ...

  3. struts2和spring的两种整合方式

    首先,来看看如何让Spring 来管理Action. 在struts.xml中加入 <constant name="struts.objectFactory" value=& ...

  4. .Net Core下使用RabbitMQ比较完备的两种方案(虽然代码有点惨淡,不过我会完善)

    一.前言     上篇说给大家来写C#和Java的方案,最近工作也比较忙,迟到了一些,我先给大家补上C#的方案,另外如果没看我上篇博客的人最好看一下,否则你可能看的云里雾里的,这里我就不进行具体的方案 ...

  5. 详解Grunt插件之LiveReload实现页面自动刷新(两种方案)

    http://www.jb51.net/article/70415.htm    含Grunt系列教程 这篇文章主要通过两种方案详解Grunt插件之LiveReload实现页面自动刷新,需要的朋友可以 ...

  6. Linux下实现秒级定时任务的两种方案

    Linux下实现秒级定时任务的两种方案(Crontab 每秒运行): 第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command s ...

  7. [转载]Java操作Excel文件的两种方案

    微软在桌面系统上的成功,令我们不得不大量使用它的办公产品,如:Word,Excel.时至今日,它的源代码仍然不公开已封锁了我们的进一步应用和开发.在我们实际开发企业办公系统的过程中,常常有客户这样子要 ...

  8. 浅谈Spring的两种配置容器

    浅谈Spring的两种配置容器 原文:https://www.jb51.net/article/126295.htm 更新时间:2017年10月20日 08:44:41   作者:黄小鱼ZZZ     ...

  9. 比较好用的移动端适配的两种方案及flexible和px2rem-loader在webpack下的配置

    移动端适配,目前自己常用的两种 方案,参考以下两篇好文 方案一:使用lib-flexible包 https://www.w3cplus.com/mobile/lib-flexible-for-html ...

随机推荐

  1. Java NIO -- DatagramChannel

    Java NIO中的DatagramChannel是一个能收发UDP包的通道.操作步骤:打开 DatagramChannel接收/发送数据 代码举例: package com.soyoungboy.n ...

  2. JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

    本项目测试环境 JDK: 1.8 SpringBoot: 2.1 需求描述 当我们想要利用SpringBoot封装一套组件并发布给第三方使用时,我们就不得不考虑我们的组件能否被使用者正确引入使用,此处 ...

  3. Java + 腾讯邮箱 SSL加密问题 重要通知

    原来的jdk8版本如果不替换jce就会在发邮件的过程中报错,而此次使用的jdk1.8.0_131,并没有出现问题,也就是说,如果你使用的版本是 就不用考虑发邮件因为加密算法而导致的错误了

  4. Git-Credential-Manager-for-Mac-and-Linux

    1.安装brew 安装命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/instal ...

  5. EasyUI的onLoadSuccess方法

    EasyUI加载表单的时候,对表单内行数据进行判断,可以赋颜色,也可以进行其他操作 onLoadSuccess:function(data) { for(var i=0;i<data.rows. ...

  6. Dijkstra算法:任意两点间的最短路问题 路径还原

    #define _CRT_SECURE_NO_WARNINGS /* 7 10 0 1 5 0 2 2 1 2 4 1 3 2 2 3 6 2 4 10 3 5 1 4 5 3 4 6 5 5 6 9 ...

  7. 9 Web开发——springmvc自动配置原理

    官方文档目录: https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#boot-features-sp ...

  8. FCN 32分析:

    FCN 32s

  9. fatal error C1083: 无法打开包括文件: “SDKDDKVer.h”: No such file or directory(转)

    fatal error C1083: 无法打开包括文件: “SDKDDKVer.h”: No such file or directory 解决办法:(Vs2013中) 项目--右键--属性--配置属 ...

  10. Python之print(args)与sys.stdout.write(string)使用总结

    一.sys.stdout.write(string) import sys; # sys.stdout.write(): # 1.默认不换行 # 2.参数必须是字符串 # demo 01 x = &q ...