- 浏览: 112392 次
- 性别:
- 来自: 上海
最新评论
-
limingcai:
大家,还是安装VM8.0啊,那样的话,到后面可以安装XCODE ...
在Windows 中安装iPhone开发环境 -
wilsonchen:
想看看全部内容,学习一下
在Windows 中安装iPhone开发环境 -
rembass:
向楼主学习!
在Windows 中安装iPhone开发环境 -
wjc19871222:
转载时没转全,去原贴看吧
在Windows 中安装iPhone开发环境 -
wjc19871222:
想看看全部内容,学习一下!
在Windows 中安装iPhone开发环境
项目结构图:
jsp部分为:index.jsp;success.jsp;fail.jsp
UserDAO.java,User.hbm.xml自动生成,HibernateSessionFactory是多余的。
1. 首先开始搭建项目环境,步骤如下:
使用平台:MyEclipse 6..8
框架版本:Struts 1.2 Hibernate 3.0 Spring 2.0
1> 添加过程:
<1> 新建项目。 Package Explorer视图下,右键单击 New -> Web Project;
<2> 添加Struts框架。菜单栏MyEclipse -> Capabilities,或者右键单击新建的项目名,选择快捷菜单中的"MyEclipse"下的二级菜单;设置相关的包名后,请写一个Struts的小例子,用来测试Struts是否可用;
<3> 添加Spring。步骤同2所述,只不过这次是加入Spring Capabilities。详细添加步骤如下图所示;
<4> 配置数据源。打开数据库视图,Windows -> Open Perspective -> MyEclipse DataBase Explorer。新建数据源, 在DB Browser下,右键单击 New ,配置信息类似下图,
点击Next,选择"Display all schemas","Finish"完工。
<5> 点击MyEclipse右上角 >>按钮,返回到MyEclipse Java Enterprise视图。按类似于2的步骤,添加Hibernate框架,此时选择单独的hibernate.cfg.xml还是选择添加到spring的配置文件applicationContext.xml中。
详细步骤如图所示
请选择Hibernate 3.0的版本
<6>通过MyEclipse生成操作数据库的Dao类(UserDao),并自动生成映射表的配置文件(在本示例中包含在 applicationContext.xml中),将视图切换到MyEclipse Database Explorer,打开我们在前面配置的数据链接,选择我们操作的表User,右键单击,选择:Hibernate Reverse Engineering。详细步骤如下图所示:
<7> 至此,项目环境己经搭建完成。
需要指出的是,为了使用日志管理的功能,你只须拷贝log4j.properties即可,将其放入到src根目录下。
log4j.properties配置内容如下(对具体配置不太了解的朋友可以在这之后学一下,此处,你只须修改日志文件存储路径即可):
log4j.rootLogger=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.Append=true
# log文件存储路径,请转换为相应的目录
log4j.appender.A1.File=E:/workspace/ssh2/logs/log4j.log
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} Method: %l%n%m%n 。
# 无详细类名、方法名信息
#log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %m%n
# -X号:X信息输出时左对齐;
# %p:日志信息级别
# %d{}:日志信息产生时间
# %c:日志信息所在地(类名)
# %m:产生的日志具体信息
# %n:输出日志信息换行
2.Struts与Spring进行整合
Spring,Hibernate已经整合在一起了,现在需要将Struts与Spring进行整合。Spring与Struts整合实现方式
第一,在struts-config.xml中加入
<!--配置一个插件去集成spring -->
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
第二,修改struts-config.xml中action节点的配置信息,将原来定义的
<action path="/validateUser"
type="com.wuwei.struts.action.ValidateUserAction" name="userForm">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
中的type改为: type="org.springframework.web.struts.DelegatingActionProxy">或者你也可以不改,而在<plug-in>标签前加入如下定义
<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为
type="org.springframework.web.struts.DelegatingActionProxy" -->
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
第三,在applicationContext.xml中为ValidateUserAction添加定义,将userDao的实例化加给Spring,这也是Spring中的依赖注入
<!-- Struts -->
<bean name="/validateUser"
class="com.wuwei.struts.action.ValidateUserAction">
<property name="userDAO" ref="userDao" />
</bean>
当然,这里ref(引用)的Bean userDao也是在applicationContext.xml中己定义好的
<!-- 通过HibernateDaoSupport来操作数据库,需要植入sessionFactory
UserDao继承自HibernateDaoSupport
-->
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二
如此这般,现在可以运行你的程序了。为了测试三个框架是否整合成功,你可以在action里什么都不做,只是写一条输入语句即可。因为搭建SSH项目时,最容易碰到的错误就是:Servlet action is not available。如果连action都访问不了,后面的就不需要谈了(文章B http://blog.csdn.net/shendiaodaxia/archive/2007/12/29/2002805.aspx应该可以解决此类问题)。测试不成功?依然是Servlet action is not available?这个时候log4j.log就起到关键作用了,你可以看下里面出现了什么异常。我在调试时碰到了:
1. java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 和
2. net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.SecurityException: class "com.wuwei.struts.bean.User$$EnhancerByCGLIB$$1016ffbf"'s signer information does not match signer information of other classes in the same package
的错误。
1的解决办法是:
在使用Spring的AOP编程时,会用到这几个lib:
(版本不一样,文件名也不一样)
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
Hibernate使用如下lib:
asm.jar
asm-attrs.jar
其中asm-2.2.3.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
2.加入Spring中的以下4个lib
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
cglib-nodep-2.1_3.jar
2的解决办法是:
在….hbm.xml文件中,将class标签的lazy属性改为false(默认为 true)<class name="com.wuwei.struts.bean.User" table="user" lazy="false">。如果有schema="dbo" catalog="test"配置信息,请将其删除
再次运行,打印语句成功 "I'm in a Action" 搭建成功!
补充:
我用的是SQLServer数据库,测试表是User表,调试时出现了
java.sql.SQLException: 在关键字 'user' 附近有语法错误。这是因为MS SQL中的User表是系统表,不能直接查询select username from user,需要将user用中括号包围[user],同样,为了保证hibernate能正常工作,需将user.hbm.xml中class元素的 table改为 table="[user]"
jsp部分为:index.jsp;success.jsp;fail.jsp
UserDAO.java,User.hbm.xml自动生成,HibernateSessionFactory是多余的。
1. 首先开始搭建项目环境,步骤如下:
使用平台:MyEclipse 6..8
框架版本:Struts 1.2 Hibernate 3.0 Spring 2.0
1> 添加过程:
<1> 新建项目。 Package Explorer视图下,右键单击 New -> Web Project;
<2> 添加Struts框架。菜单栏MyEclipse -> Capabilities,或者右键单击新建的项目名,选择快捷菜单中的"MyEclipse"下的二级菜单;设置相关的包名后,请写一个Struts的小例子,用来测试Struts是否可用;
<3> 添加Spring。步骤同2所述,只不过这次是加入Spring Capabilities。详细添加步骤如下图所示;
<4> 配置数据源。打开数据库视图,Windows -> Open Perspective -> MyEclipse DataBase Explorer。新建数据源, 在DB Browser下,右键单击 New ,配置信息类似下图,
点击Next,选择"Display all schemas","Finish"完工。
<5> 点击MyEclipse右上角 >>按钮,返回到MyEclipse Java Enterprise视图。按类似于2的步骤,添加Hibernate框架,此时选择单独的hibernate.cfg.xml还是选择添加到spring的配置文件applicationContext.xml中。
详细步骤如图所示
请选择Hibernate 3.0的版本
<6>通过MyEclipse生成操作数据库的Dao类(UserDao),并自动生成映射表的配置文件(在本示例中包含在 applicationContext.xml中),将视图切换到MyEclipse Database Explorer,打开我们在前面配置的数据链接,选择我们操作的表User,右键单击,选择:Hibernate Reverse Engineering。详细步骤如下图所示:
<7> 至此,项目环境己经搭建完成。
需要指出的是,为了使用日志管理的功能,你只须拷贝log4j.properties即可,将其放入到src根目录下。
log4j.properties配置内容如下(对具体配置不太了解的朋友可以在这之后学一下,此处,你只须修改日志文件存储路径即可):
log4j.rootLogger=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.Append=true
# log文件存储路径,请转换为相应的目录
log4j.appender.A1.File=E:/workspace/ssh2/logs/log4j.log
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} Method: %l%n%m%n 。
# 无详细类名、方法名信息
#log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %m%n
# -X号:X信息输出时左对齐;
# %p:日志信息级别
# %d{}:日志信息产生时间
# %c:日志信息所在地(类名)
# %m:产生的日志具体信息
# %n:输出日志信息换行
2.Struts与Spring进行整合
Spring,Hibernate已经整合在一起了,现在需要将Struts与Spring进行整合。Spring与Struts整合实现方式
第一,在struts-config.xml中加入
<!--配置一个插件去集成spring -->
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
第二,修改struts-config.xml中action节点的配置信息,将原来定义的
<action path="/validateUser"
type="com.wuwei.struts.action.ValidateUserAction" name="userForm">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
中的type改为: type="org.springframework.web.struts.DelegatingActionProxy">或者你也可以不改,而在<plug-in>标签前加入如下定义
<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为
type="org.springframework.web.struts.DelegatingActionProxy" -->
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
第三,在applicationContext.xml中为ValidateUserAction添加定义,将userDao的实例化加给Spring,这也是Spring中的依赖注入
<!-- Struts -->
<bean name="/validateUser"
class="com.wuwei.struts.action.ValidateUserAction">
<property name="userDAO" ref="userDao" />
</bean>
当然,这里ref(引用)的Bean userDao也是在applicationContext.xml中己定义好的
<!-- 通过HibernateDaoSupport来操作数据库,需要植入sessionFactory
UserDao继承自HibernateDaoSupport
-->
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二
如此这般,现在可以运行你的程序了。为了测试三个框架是否整合成功,你可以在action里什么都不做,只是写一条输入语句即可。因为搭建SSH项目时,最容易碰到的错误就是:Servlet action is not available。如果连action都访问不了,后面的就不需要谈了(文章B http://blog.csdn.net/shendiaodaxia/archive/2007/12/29/2002805.aspx应该可以解决此类问题)。测试不成功?依然是Servlet action is not available?这个时候log4j.log就起到关键作用了,你可以看下里面出现了什么异常。我在调试时碰到了:
1. java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 和
2. net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.SecurityException: class "com.wuwei.struts.bean.User$$EnhancerByCGLIB$$1016ffbf"'s signer information does not match signer information of other classes in the same package
的错误。
1的解决办法是:
在使用Spring的AOP编程时,会用到这几个lib:
(版本不一样,文件名也不一样)
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
Hibernate使用如下lib:
asm.jar
asm-attrs.jar
其中asm-2.2.3.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
2.加入Spring中的以下4个lib
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
cglib-nodep-2.1_3.jar
2的解决办法是:
在….hbm.xml文件中,将class标签的lazy属性改为false(默认为 true)<class name="com.wuwei.struts.bean.User" table="user" lazy="false">。如果有schema="dbo" catalog="test"配置信息,请将其删除
再次运行,打印语句成功 "I'm in a Action" 搭建成功!
补充:
我用的是SQLServer数据库,测试表是User表,调试时出现了
java.sql.SQLException: 在关键字 'user' 附近有语法错误。这是因为MS SQL中的User表是系统表,不能直接查询select username from user,需要将user用中括号包围[user],同样,为了保证hibernate能正常工作,需将user.hbm.xml中class元素的 table改为 table="[user]"
发表评论
-
CentOS 7下安装配置RabbitMQ详细教程 虚拟机安装
2018-06-23 14:23 1386<!-- 安装ifconfig --> yum i ... -
Spring Boot 配置多个RabbitMQ,多个消息源发送不同服务器IP
2018-06-19 18:19 2000项目代码构造 这里写图片描述 关注点在红框的代码。。。 代 ... -
SpringBoot注入多实例,多线程处理方式
2018-06-19 14:21 2513https://www.cnblogs.com/qindong ... -
原 局域网笔记本ping不通台式机,MYSQL错误 NO.1130 ERROR
2018-06-14 15:16 735同一局域网 笔记本ping不同台式机,mysq客户端连接数据库 ... -
几句良言 胜过十年代码
2013-12-02 08:53 754转载原文出处 http://qindongliang1922 ... -
时间字符串转换
2012-06-13 15:23 1111字符串转换成时间 DateFormat f = new Sim ... -
简单联动下拉框
2012-05-25 10:23 1105<p align="center"& ... -
w3school,html,CSS JSP,JS前端网站
2012-04-19 08:29 1374http://www.w3school.com.cn -
正则表达式,常用正则
2012-04-18 15:11 1169//邮箱正则表达式 ... -
oracle客户端连数据的配置文件
2012-04-13 10:17 1018安装oracle客户端的时候,配置数据 都在这个安装路径下 o ... -
多线程理解,线程
2012-03-31 18:12 1057最近在玩安卓,要提到多线程, 总感觉那东西有点不明白,总 ... -
struts1.2 和spring ,hibernate整合一起
2012-03-20 17:10 1126struts里面的配置 这个是从spring里拿到的bean ... -
<html:base />标签问题
2012-03-22 23:43 1052今天无意中发现,这个标签确实让人蛋疼,同样的文件,另一个 ... -
从Word读出写入txt文本
2012-02-16 17:13 1150package com.purang.pdf; import ... -
从PDF读写到TXT文本
2012-02-16 17:13 1097package com.purang.pdf; import ... -
Grails1.3.7 初学者注意的问题
2012-02-03 17:02 1165开发环境:IntelliJ IDEA 11.0.1, Gra ... -
Random随机生成ID
2011-12-30 14:12 4942[size=medium]常用UUID public s ... -
JAVA简单抽象实现方法
2011-12-26 11:30 9048public abstract class Person { ... -
类设计技巧
2011-12-23 14:13 724(1)一定要将数据设计为私有,绝对不能破坏封装性 (2)一定 ... -
java实现导出excel表
2011-12-22 19:58 971package com.experot; import ja ...
相关推荐
总结来说,"Struts1.2+Spring1.2+Hibernate3.0企业人力资源管理系统"是一个集成了主流JavaEE框架的实践案例,它展示了如何利用这些工具和技术实现复杂的企业级应用。对于学习者而言,深入研究这个项目可以加深对MVC...
Struts1.2+Spring1.2+HIbernate3.1整合一个用户登录的例子,原以为这个很简单没有必要上传上去,但问我的人太多了,所以就发布上来了,我随后会在博客里做详细的介绍,请大家继续关注我的博客.
文档"Struts 2.1+Hibernate3.3+Spring3.0整合详细步骤.doc"可能包含了上述步骤的详细过程,帮助读者理解如何将Struts 2.1(注意标题是1.2,但文档可能是2.1版本的误写)与Hibernate 3.3和Spring 3.0进行整合。...
这个项目"struts1.2+spring+hibernate 简单的实现"旨在展示如何整合这三个框架,实现单表和多表的维护,并且包含了一个简单的Excel报表生成功能。 首先,Struts1.2是MVC(模型-视图-控制器)架构模式的一种实现,它...
文档"Struts1.2+Spring2.5+Hibernate3.2框架搭建(周禄康).doc"和"Struts1.2+Spring2.5+Hibernate3.2框架搭建(原版)(周禄康).doc"可能包含了详细的步骤和示例代码,帮助读者理解如何实际操作。"Struts+...
Struts1.2、Spring2和Hibernate3是Java Web开发中的三大框架,它们的整合是构建企业级应用的常见方式。这个"struts1.2,spring2,hibernate3整合实例代码 改进"提供了对这三者集成的一种改进方案,主要目标是提升系统...
采用在web.xml中加载spring配置文件的方法降低struts和spring的耦合度,使用自定义的MyDelegatingRequestProcessor类来代替spring的DelegatingRequestProcessor类来解决spring中action的bean的重复配置问题。...
eclipse整合Struts1.2 + hibernate3.1 + spring2.0 相关链接:http://blog.csdn.net/shellwin/archive/2010/07/02/5708865.aspx
在Java EE应用开发中,SSH(Struts、Spring、Hibernate)框架的整合是常见的技术实践,这个名为" Hibernate3.1+Struts1.2+Spring2.5整合小项目 "的示例提供了如何将这三个组件集成到一个小型应用程序中的教程。...
Spring1.2+Struts1.2+hibernate3.1 整合包
Struts1.2、Spring2.0和Hibernate3.2是经典的Java企业级开发框架组合,被称为SSH框架。这个整合源码提供了这三个组件的集成示例,确保了兼容性和无jar包冲突,使得开发者可以快速地搭建和运行一个完整的Java Web项目...
总的来说,这个"hibernate3.2+struts1.2+spring2.5"整合源码是Java Web开发的经典案例,它涵盖了MVC架构的实现、ORM的使用、以及依赖注入和面向切面编程的概念。通过对这个项目的理解和实践,开发者可以深入理解SSH...
1、可以运行(发布后,删除\Tomcat 6.0\webapps\ssh\WebRoot\WEB-INF\lib下的asm-2.2.3.jar) 2、采用Struts1.2 + Spring2.5 + Hibernate3.2 整合开发 3、SSH入门级实例
Struts1.2、Spring2和Hibernate3是Java Web开发中的三大框架,它们的整合是构建企业级应用的常见方式。这个实例代码提供了一个清晰的示例,展示了如何将这三个框架有效地结合在一起。 Struts1.2是MVC(Model-View-...
struts1.2+spring2.0+hibernate3.1框架整合实例 part2 part1地址:http://download.csdn.net/source/1555175
SSH整合是Java开发中一种常见的技术栈组合,它包含了Struts1.2、Spring2.0和Hibernate3.2这三大框架。这三个组件协同工作,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,实现了业务逻辑与表现层的解耦,...
Struts1.2、Hibernate3.2、Spring2.5 和 DWR2.0 是一组经典的Java企业级开发框架组合,它们在Web应用程序开发中扮演着重要的角色。这些框架的集成为开发人员提供了强大的功能,使得后端数据管理、业务逻辑处理以及...