1.上一章集成了spring和hibernate, 这一章节再讨论把struts2集成的方案。
2.在解压了struts-2.3.12-all.zip之后有个apps 目录, 这里面是struts2的一些使用示例, 我们使用winrar解压struts2-blank.war,解压后到WEB-INF/lib 目录把所有jar文件拷贝到项目WEB-INF/lib目录下面, 之前hibernate中带了一个javaassist-3.15.0.jar, struts2中带了javaassist-3.11.0.jar文件,会冲突, 需要把avaassist-3.11.0.jar 删除, 保留高版本。 如果整合后报velocity-tool 的错误,还有其他几个jar文件也需要加入velocity-1.7.jar velocity-tools-2.0.jar。 在解压了struts-2.3.12-all.zip之后有个lib 目录下拷贝struts2-spring-plugin-2.3.12.jar 到项目中, 此jar包是spring 和 struts2 整合的jar。
3.在解压了struts-2.3.12-all.zip之后有个apps 目录, 到WEB-INF/classes 目录下面 把struts.xml拷贝到项目src目录下面。
4.3. spring 和 struts2 整合提供了两种方案
第一:把struts2 action类完全交给spring 来创建 一般配置如下
@Controller("userAction") @Scope("prototype") public class UserAction { }
需要把UserAction交给spring来创建对象, 并且需要写@Scope("prototype") 如果不写上就会有线程安全的问题, 默认struts2 创建的action 都是多实例的, 因此需要开发人员不要遗忘写上这个属性,否则很容易引起bug
struts.xml配置
<action name="userList" class="userAction" method="userList"> <result name="success"> /WEB-INF/page/user/user_list.jsp </result> </action>
此处action标签配置上的class=”userAction” 名称则是刚才在UserAction类上面注解重命名的名称, 如果UserAction 里面有些类属性是交给spring 管理, spring则可以自动注入。
第二: 由struts2-spring-plugin-2.3.12.jar 插件来创建action实例
struts.xml配置
<constant name="struts.objectFactory" value="spring" /> <actionname="userList"class="com.lysoft.web.action.user.UserAction" method="userList"> <result name="success"> /WEB-INF/page/user/user_list.jsp</result> </action>
此处action标签配置上的class=”com.lysoft.web.action.user.UserAction” 名称则是UserAction类全路径的名称,这样的好处在于不用写@Scope("prototype")
避免了开发人员不小心犯错, 如果UserAction 里面有些类属性是交给spring 管理
spring则也可以自动注入。
Struts2 在匹配一个请求时,到配置文件中查找和请求相同的action标签, 如果配置了<constant name="struts.objectFactory" value="spring" />
会根据标签上面的class 属性上面的值, 到spring配置文件中查找是否配置了对应的bean节点, 查找到了则有spring来创建action, 如果查找不到会由struts2 的插件创建action的实例。
总结: 推荐使用第二种方法, 避免不小心犯下错误。
5. 在项目中的web.xml 文件加入如下配置:
<!-- 初始化Spring Beans --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- log4j 和spring 的整合 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>ssh2.root</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- 使用Spring提供的编码过滤器 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- openSessioInView 需要放在strts2的前面 --> <filter> <filter-name>openSessionInView</filter-name> <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> <!-- 当sessionFactory名称不叫sessionFactory的时候 使用下面的配置 --> <!-- <init-param> <param-name>sessionFactoryBeanName</param-name> <param-value>mySessionFactory</param-value> </init-param>--> </filter> <filter-mapping> <filter-name>openSessionInView</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <!-- 拦截Struts2 Action --> <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>*.do</url-pattern> </filter-mapping>
6.至此已经完成struts2.12+spring3.2+hibernate4.2的集成了, 下一章节讨论测试3个框架整合是否正常。
相关推荐
Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3开发示例代码。 其中包括如下文件: 介绍文档 Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3开发示例.docx Eclipse工程文件 SSH2.zip Zip包是Eclipse...
总结来说,这个demo项目提供了一个学习和实践Struts1.2、Spring2.5和Hibernate3.2集成的平台,涵盖了MVC设计模式、依赖注入、面向切面编程和对象关系映射等多个关键概念。通过深入研究和修改这个项目,开发者能够...
Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...
Struts2.12、Spring3.2和Hibernate4.2是Java开发中经典的MVC框架集合,常用于构建企业级Web应用。这个集成示例代码提供了如何将这三个框架协同工作的详细步骤,使得开发者能够更好地理解和掌握它们的交互机制。 ...
前几天更换了最新版本的ssh,发现这次变化还是挺大的,费了很大劲才整理好,这是我整理的struts2.3.12+spring3.2+hibernate4.1.9 web网站框架,希望大家用的时候可以省点事吧,里面有用spring代理写的接口调用。
cdst ssh代码生成器,免费的,功能强悍的struts2+spring2.5+hibernate3.2的一套 代码生成系统。.zip cdst ssh代码生成器,免费的,功能强悍的struts2+spring2.5+hibernate3.2的一套 代码生成系统。.zip cdst ssh代码...
这个"struts2.5.0+spring4.1.6+hibernate4.2jar包"包含了这三个框架的特定版本,为开发者提供了一个集成的开发环境。下面将详细阐述这三个框架及其整合的关键知识点。 Struts2是MVC(Model-View-Controller)设计...
Struts2.3、Spring3.2和Hibernate4.2是三个非常重要的Java Web开发框架,它们在企业级应用中广泛使用。这篇文章将详细介绍这三个框架的整合过程以及各自的核心功能。 Struts2是一个基于MVC(Model-View-Controller...
Struts2.1、Spring 2.5 和 Hibernate 3.2 是经典的Java Web开发框架组合,用于构建高效、可维护的企业级应用。这个详细例子将深入探讨如何使用这三个框架协同工作,实现数据库的增(Add)、删(Delete)、改(Modify...
struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版 struts2 的方式自己去看简单。 spring2.5 是用注释来注入 hibernate3.2 是用ejb3注解映射关系 hibernate3 +个属性可以自动...
Struts2、Spring和Hibernate是Java Web开发中的三...以上就是关于“Struts2+Spring2.5+Hibernate3.2整合示例”的主要知识点,这个整合实例涵盖了Java Web开发中的重要技术,对于开发者来说,深入学习和实践将非常有益。
Struts2+spring2.0+hibernate3.2整合带全部jar包 Struts2+spring2.0+hibernate3.2整合带全部jar包 Struts2+spring2.0+hibernate3.2整合带全部jar包
本demo采用struts2+spring4.0+hibernate4.2框架集成(内部包含所有jar包),有最dao最底层的代码,可在项目中直接使用,并实现了一个简单的登陆和查询,代码均测试通过,为打ssh框架的同学提供方便哦
Struts2+Spring2.5+Hibernate3.2集成实例开发2 Struts2+Spring2.5+Hibernate3.2集成实例开发2
1、可以运行(发布后,删除\Tomcat 6.0\webapps\ssh\WebRoot\WEB-INF\lib下的asm-2.2.3.jar) 2、采用Struts1.2 + Spring2.5 + Hibernate3.2 整合开发 3、SSH入门级实例
最新版SSH整合(Spring3.2+Struts2.3.12+Hibernate4.2)学习最新版SSH整合(Spring3.2+Struts2.3.12+Hibernate4.2)学习最新版SSH整合(Spring3.2+Struts2.3.12+Hibernate4.2)学习最新版SSH整合(Spring3.2+Struts...
在IT行业中,构建高效、可维护的企业级应用是至关重要的,..."Struts+hibernate+Spring的整合方法.doc"则可能深入探讨整合过程中的一些技巧和注意事项。这些文档对于学习和理解这个经典框架组合的集成过程非常有价值。
struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 01部分 struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 02部分 大家只要将这两个部分的包全部下载下来,就可以搭建struts2 + spring + ...