`
阳光小菜鸟
  • 浏览: 96874 次
  • 性别: Icon_minigender_2
  • 来自: 郑州
社区版块
存档分类
最新评论

myeclipse6.0下struts2.0+spring2.0+hibernate3.2的整合示例

    博客分类:
  • SSH
阅读更多
趁着测试空闲,学习struts2.0+spring2.0+hibernate3.2的整合,对这3种技术都只有最基本的了解,网上查了N多资料,找到一篇介绍整合的文章,不过用的是hibernate3.1。
资料链接如下:hibernate3.1http://blog.sina.com.cn/s/blog_4c5ce20701000b7m.html
1. 新建web工程:
[img]http://shiningwu.iteye.com/upload/picture/pic/12421/2c42b467-8f44-3220-aed1-6b642db43162.bmp [/img]
点击“finish”。
2. 加入spring2组件
[img]http://shiningwu.iteye.com/upload/picture/pic/12437/7123801b-f9f2-3249-a9e9-ce09ee652037.bmp [/img]
选择Spring 2.0 Core Lobraries、Spring 2.0 Testing Support Libraries、Spring 2.0 Web Libraries、Hibernate 3.2 Core Libraries、Hibernate 3.2 Annotations & Entity Manager、Hibernate 3.2 Advanced Support Libraries包 。
选择Copy checked Library contents to project folder(TLDs always copied),点击“next”;[img]http://shiningwu.iteye.com/upload/picture/pic/12435/43107a35-b0e5-31d1-8134-bd4e9674bc32.bmp [/img]
点击“finish”。
3. 手工加入需要的jar文件。
需要手工添加一些jar文件到WEB-INF/lib里面,不加这些文件,加入hibernate组件后会报错。
commons-dbcp.jar
spring-hibernate.jar
spring-dao.jar
spring-jdbc.jar
commons-pool.jar
commons-collections.jar
struts2-spring-plugin-2.0.11.1.jar
spring-orm.jar
同时删除commons-collections2.11.jar
4. 加入hibernate组件。
[img]http://shiningwu.iteye.com/upload/picture/pic/12433/d8e96d08-07d5-3f18-b0cd-14dbe2fcac2b.bmp [/img]
由于eclipse6.0不支持hibernate3.2,刚刚在添加spring2.0组件时已加入hibernate3.2的jar文件,在这里就不添加hibernate3.1的jar文件。选择Copy checked Library contents to project folder(TLDs always copied),点击“next”;
[img]http://shiningwu.iteye.com/upload/picture/pic/12431/55d58d8f-bde5-354e-99e3-f10711230e5e.bmp [/img]

选择Srping configuration file(applicationContext.xml),使用spring管理hibernate,点击“next”;
[img]http://shiningwu.iteye.com/upload/picture/pic/12429/1083558e-001e-3076-aede-f29f5103500c.bmp [/img]

选择Existing Spring configuration file,填写SessionFactory ID,点击“next”;
[img]http://shiningwu.iteye.com/upload/picture/pic/12447/f1bd99c7-6f3b-33e0-97b0-6d11972381ae.bmp [/img]
填写DataSource名称,选择DB Driver,点击“next”;
[img]http://shiningwu.iteye.com/upload/picture/pic/12445/b343f79f-078d-3afc-a8e0-31e4ff07a40a.bmp [/img]
取消Create SessionFactory class选项,点击“finish”;
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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.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://192.168.151.238:3306/chgl">
		</property>
		<property name="username" value="vcom"></property>
		<property name="password" value="vcom_8968888"></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>
	</bean>
	</beans>

5. 加入struts2.0组件
加入struts2.0的jar文件
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.8.jar
xwork-2.0.3.jar
6. 修改web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>test</display-name>
  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
 </context-param>
 <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>
 </filter>
 <filter>
 <filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>struts2</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
    <welcome-file-list>
       <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
     <listener>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>
</web-app>

7. 建立映射
选择Window-Open perspective-MyEclipse Hibernate,选择使用的DB Driver,右键点击,选择“open connection…”
[img]http://shiningwu.iteye.com/upload/picture/pic/12443/06f3b3b8-617a-37f0-bc79-b1dc67da2e22.bmp [/img]
选择要使用的表,右键点击,选择“Hibernate Reverse Engineering”;
[img]http://shiningwu.iteye.com/upload/picture/pic/12441/be787f3e-3a4e-36e8-977f-e6b40da97d04.bmp [/img]
点击“next“
[img]http://shiningwu.iteye.com/upload/picture/pic/12439/9f34bedb-db53-3b49-95fc-971260a81ac4.bmp [/img]
也可填写“sequence “ or ”assigned“,点击“next“
[img]http://shiningwu.iteye.com/upload/picture/pic/12453/97b3852c-a42d-34fc-9277-11e912cf96a2.bmp [/img]
点击“finish“。
到这里,完成了struts2.0+spring2.0+hibernate3.2的基本配置。
8. 编写action及struts.xml
package com.vcom.login;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.opensymphony.xwork2.ActionSupport;
import com.vcom.hibernate.XtYhxx;
import com.vcom.hibernate.XtYhxxDAO;

public class Login extends ActionSupport{
	    private XtYhxxDAO xtyhxxDAO;
	    private String username;
	    private int rowid;
	    private String password;
	    private String message;
	    private ApplicationContext context;
	    public String getMessage() {
			return message;
		}
		public void setMessage(String message) {
			this.message = message;
		}
		public String getUsername() {
	       return username;
	    }
	    public void setUsername(String username) {
	       this.username = username;
	    }
	    public String getPassword() {
	       return password;
	    }
	    public void setPassword(String password) {
	       this.password = password;
	    }
	    
		public XtYhxxDAO getXtyhxxDAO() {
			return xtyhxxDAO;
		}
		public void setXtyhxxDAO(XtYhxxDAO xtyhxxDAO) {
			this.xtyhxxDAO = xtyhxxDAO;
		}

		public int getRowid() {
			return rowid;
		}
		public void setRowid(int rowid) {
			this.rowid = rowid;
		}
		public ApplicationContext getContext() {
			return context;
		}
		public void setContext(ApplicationContext context) {
			this.context = context;
		}
		
	    public String execute() {
	    	XtYhxx  xtyhxx = new XtYhxx();
	    	//XtYhxxDAO xtyxxdao=new XtYhxxDAO();
	    	//context=new ClassPathXmlApplicationContext("applicationContext.xml");
	    	//XtYhxxDAO xtyxxdao=(XtYhxxDAO)context.getBean("XtYhxxDAO");
	    	xtyhxx.setYhdm(username);
	    	//xtyhxx.setYhmm(password);
	    	xtyhxx.setRowid(rowid);
	    	message ="Welcome, "+ xtyhxx.getRowid()+","+xtyhxx.getYhdm();
	    	Session session=xtyhxxDAO.getHibernateTemplate().getSessionFactory().openSession(); 
	        try{
	        	//xtyhxxDAO.save(xtyhxx);
	        	//xtyhxxDAO.delete(xtyhxx);
	        	//XtYhxx aa=xtyhxxDAO.findById(rowid);
	        	//System.out.println("------"+aa.getYhdm());
	        	//Example example = Example.create(xtyhxx);
	        	//List list=xtyxxdao.findByExample(xtyhxx);     	
	        	//Criteria criteria = session.createCriteria(XtYhxx.class).add(example);
	        	//List list = criteria.list();  
	        	Map map = new HashMap();
				map.put("yhdm", username);
				map.put("yhmm", password);
				map.put("rowid", rowid);
	        	List list=session.createCriteria(XtYhxx.class).add(Restrictions.allEq(map)).list();
	        	//System.out.println("------"+list.size());
	        	if(list.size()==0)  message ="Invalid user or password";
	        }catch (Exception ex){
	            ex.printStackTrace();
	            return ActionSupport.INPUT;
	        }finally {
	            if (session.isOpen()) {
	            	session.close();
                 }
	        }
	       return SUCCESS;
	    }

	} 
struts.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <!-- <constant name="struts.objectFactory" value="spring" /> 是在后面的spring2配置中用到意思是把控制交给spring2  -->
    <constant name="struts.objectFactory" value="spring" />
    <include file="struts-default.xml"></include>
    <package name="com.vcom.login" extends="struts-default">
    <!-- <action name="Login" class="Login"> 这里用class来关联spring2配置文件中的配置关联  -->
        <action name="Login" class="LoginAction">
            <result>/login/login.jsp</result>
            <result name="INPUT">/login/login.jsp</result>
        </action>
     </package>
</struts>

9. 修改applicationContext.xml
加入
<bean id="LoginAction" class="com.vcom.login.Login" >
       <property name="xtyhxxDAO">
           <ref bean="XtYhxxDAO" />
       </property>  
</bean>

10. 编写login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>   
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <table width="300" border="0">
        <s:form action="Login" theme="simple">
        <tr>
        <td width=50%>用户名:</td>
        <td width=50%><s:textfield name="username" /></td>
        </tr>
       <tr>
        <td width=50%>密码:</td>
        <td width=50%><s:textfield name="password" /></td>
        </tr>
        <tr><td colspan=2 align=center width=100%><s:submit /></td></tr>
        <tr>
        <td colspan=2 align=center width=100%><s:property value ="message"/></td>
        </tr>
        </s:form>
        </table>
  </body>
</html>

11. 新建DB Driver
选择Window-Open perspective-MyEclipse Hibernate,在左边DB Browser中点击右键-new
[img]http://shiningwu.iteye.com/upload/picture/pic/12451/64572ad8-e483-3ab0-86be-8d8f31a21dc0.bmp [/img]
点击“next“;
[img]http://shiningwu.iteye.com/upload/picture/pic/12449/4cd6e96d-7960-322e-a7a0-edee730ab986.bmp [/img]
点击“finish“。

12. 需要注意的事项
1. WEB-INF中
 <context-param>
        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
 </context-param>

applicationContext.xml的路径必须和实际一致,applicationContext.xml建议放在classes下,这样在实际引用时不用写绝对路径。
2. struts.xml中
<action name="Login" class="LoginAction">
            <result>/login/login.jsp</result>
            <result name="INPUT">/login/login.jsp</result>
        </action>

Action中成功返回success,在struts.xml中不能写成<result name=”success”>/login/login.jsp</result>,会报找不到result success的异常。
分享到:
评论
1 楼 tengfei3003 2010-03-29  
PageUtil 咋不贴出来呢

相关推荐

    Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例

    该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...

    Struts2.0+Spring2.0+Hibernate3.1整合

    本文档主要介绍如何在MyEclipse 6.0环境下搭建Struts2.0+Spring2.0+Hibernate3.1的整合环境。 #### 二、Struts2.0配置详解 ##### 1. 创建Web工程 首先,通过MyEclipse 6.0创建一个新的Web工程,这一步是整个项目...

    Struts2.1.6+Struts2.0+Hibernate3.1整合示例

    开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate3.1、MyEclipse 5.5、Tomcat 6.0 使用步骤: 1、下载解压之后,使用IDE导入工程 2、把工程中的“演示数据脚本.sql”导入到...

    struts2.0+spring2.0+hibernate3.0整合

    在Web开发中,Struts2、Spring和Hibernate(简称SSH)是一种常见的三大框架整合,用于构建高效、灵活的企业级应用程序。这个整合方案利用Struts2作为MVC框架负责前端展示逻辑,Spring作为依赖注入(DI)和应用上下文...

    s2sh整合实例 Struts2.0 Spring2.6 Hibernate3.2

    ### S2SH整合实例:Struts2.0、Spring2.6、Hibernate3.2 在本篇文章中,我们将深入探讨如何将Struts2.0、Spring2.6与Hibernate3.2进行整合,构建一个典型的三层架构应用系统。本文旨在为初学者提供一个完整的示例,...

    struts1.2+spring2.0+hibernate3.1集成开发详解

    本篇文章将通过图文并茂的方式详细介绍如何在MyEclipse环境下,利用Struts 1.2、Spring 2.0 和 Hibernate 3.1 来构建一个查询Oracle数据库中雇员信息的应用,并探讨Hibernate中延迟加载机制的使用方法。 #### 2. 软...

    Java SSH框架整合搭建Web系统(Struts1.2+Spring2.5+Hibernate3.2)

    ### Java SSH框架整合搭建Web系统(Struts1.2+Spring2.5+Hibernate3.2) #### 一、准备工作 在开始构建基于Struts1.2+Spring2.5+Hibernate3.2的Web应用之前,需要进行一系列的基础设置工作。 **1.1 创建工程** ...

    图解MyEclipse配置struts+hibernate+spring

    **SSH架构详解** ...综上所述,通过MyEclipse配置和整合Struts、Hibernate、Spring,可以构建出高效、松耦合的Java Web应用。理解并掌握SSH架构的配置和使用,对提升开发效率和代码质量具有重要意义。

    SSH(Struts1+Spring+Hibernate)配置开发总结

    开发环境为MyEclipse 6.0 + Tomcat 5.0 + SQL Server 2000,配置环境则采用了Struts 1.2 + Spring 2.0 + Hibernate 3.1。 #### 二、创建Java-Web Project工程 1. **项目创建**: - 首先,在MyEclipse中创建一个新...

    struts2+hibernate+spring经典整合实例教程

    本文档将详细介绍如何使用 MyEclipse 7.0 开发环境搭建基于 Struts2、Hibernate 和 Spring 的经典整合项目,并通过示例工程 BookShop 来具体演示整个开发流程。此教程将覆盖以下关键知识点: 1. **环境搭建**:包括...

    Struts+Spring+Hibernate整合开发详解

    ### Struts+Spring+Hibernate整合开发详解 #### 一、项目背景与意义 在现代企业级应用开发中,为了提高软件质量和开发效率,通常会采用多种框架进行整合开发。Struts、Spring 和 Hibernate(通常简称 SSH)是三个...

    Struts2+spring2+hibernate3实例源码-java源码

    ### Struts2 + Spring2 + Hibernate3 整合实例源码分析 #### 一、概述 随着企业级应用的发展,为了提高开发效率和系统维护性,越来越多的项目开始采用MVC设计模式。其中,Struts2作为MVC框架中的佼佼者,在前端...

    Spring2.5.3+Hibernate3.2+Struts2.0.11整合

    在本文中,我们将探讨如何将Spring 2.5.3、Hibernate 3.2和Struts 2.0.11这三大流行Java企业级框架进行整合。这种整合通常用于构建复杂的Web应用程序,提供数据持久化、业务逻辑管理以及用户界面控制。下面我们将...

    struts2+hibernate+spring整合实例教程_完美测验

    本文档旨在通过一个具体的示例项目来详细介绍如何整合Struts2、Hibernate和Spring三大框架,以便构建一个完整的Java Web应用程序。这三种技术的结合能够极大地提高开发效率,简化代码结构,并且增强系统的可维护性和...

    基于Struts+Hibernate+Spring的Web_应用开发

    ### 基于Struts+Hibernate+Spring的Web应用开发 #### 一、实训目标概述 本实训指导书旨在帮助学生深入理解并掌握基于Struts、Hibernate与Spring三种技术的Web应用开发流程与技巧。通过分阶段的学习和实践,使学生...

    MyEclipse 6.0

    它还支持多种Web框架,如Spring、Struts和Hibernate,极大地简化了Web应用的开发过程。 #### 集成的数据库工具 MyEclipse内置了数据库管理工具,允许开发者直接从IDE中查询、编辑数据库数据,甚至可以进行数据库...

    基于MyEclipse6.0的SSH整合

    【标题】"基于MyEclipse6.0的SSH整合"是一个关于如何在MyEclipse集成开发环境中集成Spring、Struts和Hibernate(SSH)框架的教程。这个教程可能涵盖了从安装和配置MyEclipse到创建一个完整的SSH应用的全过程。 ...

Global site tag (gtag.js) - Google Analytics