`
kidiaoer
  • 浏览: 822582 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

s1sh整合实例 Strut1.2+Spring2.6+Hibernate3.2

阅读更多

开发环境:MyEclipse8.5+Mysql
说明:本实例是简单注册程序(只有两个属性)
数据库脚本:user.sql

CREATE TABLE `user` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
 
开发步骤:
一
1建立Web项目
   选择: Java EE 5.0
2添加Struts支持(项目右键MyEclipse Struts Capabilities …)
       选择:
1)Struts specification: Struts 1.2
2)Base package for 那位classes:com.beyondsoft.s1sh
3添加Spring支持(项目右键MyEclipse Spring Capabilities …)
       选择:
1) Spring version:Spring 2.5
2) Select the libraries to add the buildpath:
Spring 2.5 AOP Libraries
Spring 2.5 Core Libraries
Spring 2.5 Persistence Core Libraries
Spring 2.5 Persistence JDBC Libraries
Spring 2.5 Web Libraries
       3) JAR Library Installation:
Copy checked Library contents to project folder (TLDs always copied)
       Next
4) Spring配置文件选择目录Folder:WebRoot/WEB-INF
Finish
4 添加Hibernate支持(项目右键MyEclipse Hibernate Capabilities …)
       选择:
       1)Hibernate Specification:Hibernate3.2
       2)Select the libraries to ad to the buildpath:Hibernate 3.2 Core Libraries和Hibernage 3.2 Annoations
3)JAR Library Installation:Copy checked Library Jars to project folder and add to build-path
Next
4)选择:Spring configuration file(applicationContext.xml) Next
       5)选择:Existing Spring configuration file
SessionFactory Id: sessionFactory Next
       6)Bean Id:dataSource
DB Driver:选择配置好的Hibernate。Next
       7)不建立SessionFactory(不选择Create SessionFactory class?)
       8)Finish。

二 数据库方面
    Hibernate反向工程:
1).准备数据库,假如名为s1sh,里面有一个User的表

 
2).在MyEclipse的右上角切换透视图,切换到MyEclipse Database Explorer
 
3).然后在最左边点击右键,选择New(也就是说新建一个数据库连接,Driver Name叫s1sh,方便下面解释,其它的跟平常用的一样),,配置好连接以后点击Next,进入下一个窗体,   选择第三个单选按钮(Display the selected Schemas),然后点击右边的Add按钮,也就是说添加你的数据库,然后点击完成按钮,这样你的数据库连接就创建好了;


在你刚才创建的s1sh上右键,选择Open connection,   一直展开到s1sh下面的TABLE,展开TABLE,在我们创建的User表上点击右键,选择Hibernate Reverse Engineering(这个就是反向生成),出来一个面板   在Java src folder 选择这个工程的src目录,然后在Java Package上选择刚才我们在工程里面创建好的bean包,接下来就是勾中前三个复选框就可以了,点击Next,又会出现一个面板,这个面板可以不用管,然后点击Next,这个面板也不用管,点击Finish,然后就会生成实体类和映射文件了。

三 建立JSP 页面,Action类
       1) 打开struts-config.xml配置文件:右键new Form,Action and JSP
       2) User case:register
       Form Impl:New FormBean
       Properties:username password
       JSP:选择Create JSP form Next
3) Action 默认就可以了 Finish
       4) 配置struts-config.xml文件,将Struts交给Spring管理
              a) 加入插件 (message-resources标记下)
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation"
              value="/WEB-INF/applicationContext.xml" />
</plug-in>
b) 将Action类移交(message-resources标记上)
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

struts-config.xml文件(全部)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
	<data-sources />
	<form-beans>
		<form-bean name="registerForm" type="com.beyondsoft.bean.RegisterForm">
			<form-property name="id" type="java.lang.Integer" />
			<form-property name="username" type="java.lang.String" />
			<form-property name="password" type="java.lang.String" />
		</form-bean>

	</form-beans>
	<global-exceptions />
	<global-forwards />
	<action-mappings>
		<action attribute="registerForm" input="/form/register.jsp"
			name="registerForm" path="/register" scope="request"
			type="com.beyondsoft.s1sh.action.RegisterAction">
			<forward name="success" path="/form/main.jsp" />
		</action>
		<!--
			<action input="/form/register.jsp" name="registerForm"
			path="/register" scope="request"
			type="com.beyondsoft.s1sh.action.RegisterAction"> <forward
			name="success" path="/form/main.jsp" /> </action>
		-->
	</action-mappings>
	<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
	<message-resources parameter="com.beyondsoft.s1sh.ApplicationResources" />
	<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
		<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
	</plug-in>
</struts-config>



5) register.jsp页面(WebRoot/form/register.jsp)
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> 
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html> 
	<head>
		<title>JSP for DynaActionForm form</title>
	</head>
	<body>
		<html:form action="/register">
			username : <html:text property="username"/><html:errors property="username"/><br/>
			password : <html:text property="password"/><html:errors property="password"/><br/>
			<html:submit value="注册"/>&nbsp;&nbsp;&nbsp;&nbsp;<html:reset value="重置"/>
		</html:form>
	</body>
</html>

6.在applicationContext.xml里面加入
<bean name="/register" class="com.beyondsoft.s1sh.action.RegisterAction">
	<property name="userDAO">
			<ref bean="userDAO" />
		</property>
</bean>

applicationContext.xml文件(全部)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">


	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver">
		</property>
		<property name="url" value="jdbc:mysql://localhost:3306/s1sh"></property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/beyondsoft/bean/User.hbm.xml</value>
			</list>
		</property>
	</bean>

	<bean id="userDAO" class="com.beyondsoft.bean.UserDAO">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	
	<bean name="/register" class="com.beyondsoft.s1sh.action.RegisterAction">
	<property name="userDAO">
			<ref bean="userDAO" />
		</property>
	</bean>
	
</beans>

7.在RegisterAction类里面加一个属性userDAO;并实现set和get方法。
再加入		
userDAO.save(new User(registerForm.getUsername(),registerForm.getPassword()));
return mapping.findForward("success");


在运行即可。


但是由于Myeclipse的问题会出现org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor 

它是由于在使用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。。。。。。  


所以我们只要去除类路径上的关于Hibernate的3个lib  
asm.jar  
asm-attrs.jar  
cglib-2.1.3.jar  即可运行成功。


这是一个最简单的Strut1.2+Spring2.6+Hibernate3.2整合的一个小实例。如果你要实现更多的功能可以在这个的基础上面再加。


分享到:
评论

相关推荐

    Strut2+Spring2.5+Hibernate3.2增删改查小例子

    Strut2+Spring2.5+Hibernate3.2增删改查小例子,刚学时,在网上找的资料讲的不是很清楚,不适合初学者,现在这个例子适合初学者,希望初学者能更快上手.用的Oracle数据库,内有框架搭架方法

    Struts2+Spring2.5+Hibernate3.2集成实例开发2

    Struts2+Spring2.5+Hibernate3.2集成实例开发2 Struts2+Spring2.5+Hibernate3.2集成实例开发2

    Strut+Spring+Hibernate框架的工作原理

    Strut+Spring+Hibernate框架的工作原理 Strut+Spring+Hibernate框架是当前流行的Java EE框架,它们之间的结合使用可以提供一个完整的企业级应用程序解决方案。下面我们将详细介绍Strut、Spring和Hibernate框架的...

    SSH整合:spring3.2+strut2.3.4+hibernate4.2所需jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Spring、Struts2和Hibernate三个开源框架,以构建高效、模块化的应用程序。以下是关于这个整合的详细知识点: 1. **Spring框架**:Spring是一个全面的Java企业级...

    strut2+hibernate+spring项目整合实例

    在这个"Strut2+Hibernate+Spring项目整合实例"中,我们将深入探讨这三个框架如何协同工作,创建一个高效、灵活的Java Web应用。 首先,Struts2作为前端控制器,负责接收用户的请求,解析请求参数,并根据配置的...

    SSH整合spring3.2+strut2.3.4+hibernate4.2所需jar包

    SSH整合是Java开发中常见的三大框架——Spring、Struts和Hibernate的集成,它们共同构建了企业级应用的模型-视图-控制器(MVC)架构。这个整合涉及到多个jar包,用于提供各种功能,如依赖注入、事务管理、持久化处理...

    strut+spring+hibernate注册登录系统

    总的来说,这个"Strut+Spring+Hibernate注册登录系统"是一个典型的Java Web开发实践案例,涵盖了用户管理的核心功能和常见的框架整合使用,对于学习和理解SSH框架以及Web应用程序设计有很好的参考价值。开发者可以...

    构建strut2+spring3+hibernate4所有jar,直接导入lib

    综上所述,构建Strut2+Spring3+Hibernate4的环境涉及多个步骤和组件,通过合理的配置和整合,可以构建出高效、可维护的Java Web应用。在实践中,不断学习和优化这些框架的使用技巧,能够提高开发效率和软件质量。

    spring3.2+strut2+hibernate4

    spring3.2+strut2+hibernate4 注解方式。 spring.xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    Struts2+Spring2.5+Hibernate3.2集成实例开发

    Struts2+Spring2.5+Hibernate3.2集成实例开发 附带我本人写的一个实例,如果默认数据库Oracle10g ,可以根据实际情况调整;文件较大,分为两个部分下载,同时下在完成后,执行Struts2+Spring+Hibernate.part1.rar...

    strut2+spring+hibernate +sqlserver2005

    这个名为"SS2HTEST"的压缩包文件,很可能包含了一个完整的Web项目,演示了如何将Struts2、Spring和Hibernate整合,并与SQL Server 2005数据库协同工作,实现一个基本的登录功能。以下是对这些技术的详细解释: 1. *...

    struts+spring+hibernate三大框架整合

    SSH三大框架,即Struts、Spring和Hibernate,是Java Web开发中的常用技术组合,它们各自负责不同的职责:Struts作为MVC模式中的Controller层,处理用户请求并转发到相应的业务逻辑;Spring则作为核心容器,负责依赖...

    strut2+hibernate3+spring3整合jar包.rar

    这个"strut2+hibernate3+spring3整合jar包.rar"文件包含了这些框架的特定版本,以及MySQL驱动和Log4j日志库,为开发者提供了一个快速搭建Java Web应用的基础环境。 **Struts2** 是一个MVC(Model-View-Controller)...

    strut2+hibernate+spring+extjs3.0+excel 动态加载grid

    strut2+hibernate+spring+extjs3.0+excel 动态加载grid 数据导出excel,导入excel datasource自己修改你自己的数据源,数据库中的表可见实体类创建,或者自己修改实体类

    spring+strut2+hibernate整合

    标题“spring+strut2+hibernate整合”所涉及的是一个经典的Java Web开发中的集成框架,这通常是为了构建高效、灵活的企业级应用程序。在这个整合中,Spring作为基础的依赖注入(DI)容器,Struts2作为表现层框架,而...

    strut2+spring2未整合,初步demo

    在本“strut2+spring2未整合,初步demo”项目中,我们将探讨这两个框架如何初步协作,尽管它们还没有被完全整合。 首先,Struts2的核心在于Action类,它是处理用户请求并调用业务逻辑的主要组件。在Struts2中,我们...

    strut+spring+hibernate实例

    Struts、Spring 和 Hibernate 是Java Web开发中的三大框架,它们的组合被称为SSH(Struts + Spring + Hibernate)集成框架。这个实例是针对初学者设计的,通过MyEclipse 6.0开发环境来演示如何将这三个框架整合在...

    Strut2+Spring+SQLServer的学生成绩管理系统

    包含SQLServer的数据库文件,直接...Struts2与Spring的整合,使用Apache的POI框架导出Excel等功能会让你愉悦一下的。看不惯有些人很烂的代码收上八九分的,两分是为了自己挣点分下资源,下过觉得不亏的给好评哦,亲~

    struts2+spring+ibatis+mysql

    "Struts2+Spring+Ibatis+MySQL" 是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、...

Global site tag (gtag.js) - Google Analytics