`

Struts2 Spring hibernate 整合示例

    博客分类:
  • ssh
阅读更多

 

步骤:

1.创建一个WEB工程,命名为BookShop(名字自己取,此处为示例工程名);

2.导入struts2的核心jar包,也就是在WEB-INF下的lib文件夹中放入jar包文件,

freemaker-2.3.8.jar

ognl-2.6.11.jar

struts2-core-2.0.14.jar

struts2-spring-plugin-2.0.14.jar

xwork-2.0.7.jar

3.加载spring,选中工程名,右击并选择【MyEclipse】选项下的【Add Spring Capabilities...】(或者在工具栏中选择【MyEclipse】下的【Add Spring Capabilities...】),在弹出的对话框中进行如下选择:

 Spring 2.5 AOP Libraries

 Spring 2.5 Core Libraries

 Spring 2.5 Persistence Core Libraries

 Spring 2.5 PersistenceJDBC Libraries

 Spring 2.5 Web Libraries

点击【Next】,点击Folder文本框后的【Browse】,在弹出对话框中选择spring配置文件存储位置为WEB-INF文件夹:


点击【OK】后,再点击【Finish】完成。至此,已经完成加载spring,在WEB-INF文件夹下已经生成了配置文件applicationContext.xml。

4.加载Hibernate,选择【MyEclipse】下的【Add Hibernate Capabilities...】,在弹出对话框中进行如下所示操作:  

全选 MyEclipse Libraries, 然后选择 Copy checked Library.......


点击【Next】后,选择Existing Spring configuration file单选框,在SessionFactory Id文本框中填入"sessionFactory",如下所示 :
选择 Existing Spring configuration file,选择前面的 applicationContext.xml
SessionFactory Id : sessionFactory

点击【Next】,进行如下所示操作:
这里需要选择一个之前在 MyEclipse 中配置好的一个数据库链接

该操作中,只需在Bean Id文本框中输入一个Id名,作为数据库源的代用名,意义不大。然后在DB Driver下拉列表中,选择MyEclipse中创建好的数据库源xiaoqi,其他信息将自动填写。点击【Next】,在弹出对话框中去掉Create SessionFactory class?复选框,不创建该类,点击【Finish】完成(创建过程中,加载的jar包文件可能有重复,所以这个时候如果提示有某些jar包重复,问全部保存【Keep Exiting】,还是替换掉【Replace】,可以选择替换掉【Replace】)。

5.创建struts.xml文件,在src包下新建一个struts.xml文件,该文件内容如下:

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "
http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<!--下述语句是将struts2交给spring管理 -->

<constant name="struts.objectFactory" value="spring" />

<!--导入struts-default.xml文件 -->

<include file="struts-default.xml"></include>

<!--将action内容放在package元素下,package元素的name值与extends值可以使用默认值,如下所示 -->

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

<!--例如与用户登录相关的LoginAction,配置如下,其中,class值与applicationContext.xml文件中该action的id值相对应,name值作为标识-->

   <action name="loginAction" class="LoginAction">

<!--result元素设置页面跳转值,其中name值为目标页面的字符串标识,如下,登录失败时回到login.jsp页面,成功时,转向success.jsp页面 -->

    <result name="fail">/login.jsp </result>

    <result name="success">/success.jsp</result>

   </action>

</package>

</struts>

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">

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<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.反向生成实体类文件

在src包下新建一个entity包,将前面数据源xiaoqi所示数据库bookshop中的user表反向生成Hibernate实体类文件。

8.创建数据操作文件

在src包下创建dao包,在该包下新建类文件PersonManage.java,其内容如下所示:

package dao;

import java.util.*;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import entity.*;

public class PersonManage extends HibernateDaoSupport {

//普通用户登录验证
@SuppressWarnings("unchecked")
public boolean checkUser(String userName,String userPassword){
   boolean flag = false;
   String hql = "from User as user where user.userName = '"+userName+"' and user.userPassword = '"+userPassword+"'";
   List<User> userList = this.getHibernateTemplate().find(hql);
   if(userList.size()>0){
    flag = true;
   }
   return flag;
}

}

9.创建Action

在src包下新建一个包,名为"com.xiaoqi.action"(名字仅为示例,只写一个com也可以,示例写法是采取struts中的action包名写法),在该包下新建一个action类LoginAction.java,其内容如下:

package com.xiaoqi.action;

import com.opensymphony.xwork2.ActionSupport;

import dao.PersonManage;

public class LoginAction extends ActionSupport{

private String userName;
private String userPassword;
private PersonManage personManage;
public String getUserName() {
   return userName;
}
public void setUserName(String userName) {
   this.userName = userName;
}
public String getUserPassword() {
   return userPassword;
}
public void setUserPassword(String userPassword) {
   this.userPassword = userPassword;
}
public void setPersonManage(PersonManage personManage) {
   this.personManage = personManage;
}
public String execute(){
   String page = "fail";
   boolean flag = false;
   flag = personManage.checkUser(userName, userPassword);
   if(flag){
    page = "success";
   }
   return page;
}
}

10.创建页面,创建登录页面login.jsp,内容如下:

<%@ page language="java" pageEncoding="gb2312"%>

<!-- 导入struts2标签库 -->
<
%@taglib uri="/struts-tags" prefix="s"%>

<html> 
<head>
   <title>用户登录</title>
</head>
<body>
<center>

   <div id="login">
    <s:form action="loginAction">
     <s:textfield label="用户名" name="userName"></s:textfield>
     <s:password label="密码" name="userPassword"></s:password>
     <s:submit value="登录"></s:submit>
    </s:form>
   </div>

</center>
</body>
</html>

页面中,先导入struts2标签库,用来创建form表单。form表单提交给与登录相关的LoginAction.java文件,而LoginAction.java在struts.xml文件中相应的name值为"loginAction”,所以这里的action值为"loginAction"。至于用户名文本框与密码文本框的name值则与LoginAction.java文件中的userName与userPassword完全匹配。

11.配置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.5.xsd">

<!--   以下为数据源配置,自动生成 -->

<bean id="candy" class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName"
    value="com.mysql.jdbc.Driver">
   </property>
   <property name="url"
    value="jdbc:mysql://localhost:3306/bookstore">
   </property>
   <property name="username" value="root"></property>
   <property name="password" value="sa"></property>
</bean>

<!--   以下为sessionFactory配置,自动生成 -->

<bean id="sessionFactory"
   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="dataSource">
    <ref bean="candy" />
   </property>
   <property name="hibernateProperties">
    <props>
     <prop key="hibernate.dialect">
      org.hibernate.dialect.MySQLDialect
     </prop>
    </props>
   </property>
   <property name="mappingResources">
    <list>
     <value>entity/User.hbm.xml</value></list>
   </property></bean>

<!--   配置PersonManage.java类文件 -->

<bean id="personManage" class="dao.PersonManage" abstract="false"
   lazy-init="default" autowire="default" dependency-check="default">
   <property name="sessionFactory" >
    <ref local="sessionFactory"/>
   </property>
</bean>

<!--   配置LoginAction.java类文件 -->

<bean id="LoginAction" class="com.xiaoqi.action.LoginAction" >

       <property name="personManage">
           <ref bean="personManage" />
       </property>

</bean>
</beans>

 

分享到:
评论

相关推荐

    struts2 spring hibernate整合要点、注意点

    ### Struts2、Spring与Hibernate整合的关键点及注意事项 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的框架。它们分别在MVC架构、依赖注入与业务逻辑管理、对象关系映射等方面...

    Struts2+Hibernate+Spring 整合示例

    **Struts2+Hibernate+Spring整合**: 整合这三个框架,主要是为了实现更高效的控制流、数据访问和事务管理。通常步骤如下: 1. **配置Spring**:创建Spring的配置文件(如applicationContext.xml),定义bean并声明...

    s2sh struts2 Spring hibernate整合实例(附带所有jar包,及源码)

    5. **整合步骤**:在Struts2的Action中,通过Spring的Autowired注解注入需要的服务类,这些服务类通常会持有Hibernate的SessionFactory,从而完成DAO层的数据库操作。 6. **测试与运行**:在MyEclipse8.0环境下,将...

    JavavEE轻量级框架Struts2+Hibernate+Spring整合开发

    JavaEE轻量级框架Struts2、Hibernate和Spring的整合开发是现代企业级应用开发中的常见模式,这种组合被称为SSH(Struts2、Spring、Hibernate)框架。这三种技术分别承担了不同职责,共同构建了一个高效、灵活且可...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    struts2与hibernate整合开发

    在整合Struts2和Hibernate时,通常会创建一个Hibernate配置文件(hibernate.cfg.xml),定义数据源、实体类和映射关系。然后,Action类可以通过SessionFactory创建Session对象,使用Session对象来执行CRUD(创建、读取...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用03

    实际的范例应用会包含详细的配置文件、Action类、Service类和DAO类的代码,以及如何在这些类中使用Struts2、Hibernate和Spring的示例。这些代码实例将帮助开发者更好地理解和掌握三者整合的技巧,提升开发效率。

    struts2+spring+hibernate整合示例

    SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...

    struts2 spring hibernate整合

    Struts2、Spring和Hibernate是Java Web开发中的三个核心框架,它们的整合(通常被称为SSH整合)能够构建出高效、可维护的Web应用程序。这里,我们深入探讨一下SSH整合的关键知识点。 **Struts2** 是一个基于MVC设计...

    struts1+spring+hibernate整合示例

    ### Struts1+Spring+Hibernate整合示例解析 在Java Web开发领域,Struts1、Spring与Hibernate三者的结合(通常简称为SSH)是构建复杂应用的一种常见模式。本篇文章将详细解读“struts1+spring+hibernate整合示例”...

    struts2+spring+hibernate示例

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各司其职,共同构建了一个强大的企业级应用体系。这个示例项目是基于这三个框架的整合应用,用于实现一个基本的用户登录功能。 **Struts2** 是一个用于...

    Struts+Spring+Hibernate整合开发详解

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

    struts2+hibernate3.3.2+Spring2.5.5整合示例

    这个"struts2+hibernate3.3.2+Spring2.5.5整合示例"压缩包文件(WebOA)可能包含了一个简单的Web应用实例,演示了如何将这三个框架集成在一起。由于压缩包中没有包含所有必要的库,开发者在使用时需要自行下载相应的...

    Struts2+Hibernate+Spring4 整合微信登录demo

    该项目是一个综合示例,旨在帮助初学者了解如何将流行的Java开发框架Struts2、Hibernate和Spring4整合在一起,并实现微信登录功能。这三个框架在企业级Java应用开发中广泛使用,它们各自负责不同的职责:Struts2处理...

    Struts+Spring+Hibernate 整合教程.pdf

    ### Struts+Spring+Hibernate 整合教程知识点详解 #### 一、SSH整合理念与背景 **1.1 框架概述** 在构建复杂的Web应用程序时,开发人员需要面对诸多挑战,包括如何构建用户界面(UI)、业务逻辑(BL)的存放位置以及...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用02

    这个"Struts2+Hibernate+Spring整合开发深入剖析与范例应用02"的学习资源,很可能是关于这三大框架集成使用的详细教程或案例集。02这个文件名可能代表系列的第二部分,意味着它可能在前一部分的基础上进一步深入讲解...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用06

    4. **整合流程**:整合Struts2、Hibernate和Spring,首先需要在项目中引入相关库,然后配置Spring的ApplicationContext,定义Bean以及它们之间的依赖关系。接着,配置Struts2的struts.xml文件,声明Action类,并设置...

    struts2 与 hibernate 整合 写得非常详细 简单易懂

    整合Struts2和Hibernate可以使你在开发过程中专注于业务逻辑,而不必关心底层数据库操作的细节。这种方式提高了开发效率,同时使得代码更加模块化,易于维护和扩展。在实际项目中,还可以结合其他框架,如Spring,...

    Struts 2+Hibernate+Spring整合开发技术详解 12~17章

    这本由蒲子明编著的《Struts 2+Hibernate+Spring整合开发技术详解》深入探讨了如何将这三个框架有效结合,以构建高效、模块化的Web应用。书中第12到17章的内容涵盖了以下几个关键知识点: 1. **Struts 2框架**: -...

Global site tag (gtag.js) - Google Analytics