当前位置:文档之家› struts2+hibernate+spring经典整合实例教程

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

Struts2与Spring、Hibernate三者整合的过程示例:

示例工具:MyEclipse 7.0、Tomcat 6.0、MySql

步骤:

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

2.导入struts2的核心jar包,也就是在WEB-INF下的lib文件夹中放入jar包文件,如下图(图中jar包为示例版本):

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

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

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

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

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

点击【Next】,进行如下图所示操作:

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

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

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"https://www.doczj.com/doc/dd9906306.html,/dtds/struts-2.0.dtd">

/login.jsp

/success.jsp

6.配置web.xml文件,其内容如下:

xmlns="https://www.doczj.com/doc/dd9906306.html,/xml/ns/javaee"

xmlns:xsi="https://www.doczj.com/doc/dd9906306.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.doczj.com/doc/dd9906306.html,/xml/ns/javaee

https://www.doczj.com/doc/dd9906306.html,/xml/ns/javaee/web-app_2_5.xsd">

contextConfigLocation

/WEB-INF/applicationContext.xml

struts2

org.apache.struts2.dispatcher.FilterDispatcher

struts2

/*

index.jsp

org.springframework.web.context.ContextLoaderListener

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 https://www.doczj.com/doc/dd9906306.html,erName = '"+userName+"' and https://www.doczj.com/doc/dd9906306.html,erPassword = '"+userPassword+"'";

List 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) {

https://www.doczj.com/doc/dd9906306.html,erName = userName;

}

public String getUserPassword() {

return userPassword;

}

public void setUserPassword(String userPassword) {

https://www.doczj.com/doc/dd9906306.html,erPassword = 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"%>

<%@taglib uri="/struts-tags" prefix="s"%>

用户登录

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

11.配置applicationContext.xml文件:

xmlns="https://www.doczj.com/doc/dd9906306.html,/schema/beans"

xmlns:xsi="https://www.doczj.com/doc/dd9906306.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.doczj.com/doc/dd9906306.html,/schema/beans

https://www.doczj.com/doc/dd9906306.html,/schema/beans/spring-beans-2.5.xsd">

value="com.mysql.jdbc.Driver">

value="jdbc:mysql://localhost:3306/bookstore">

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

org.hibernate.dialect.MySQLDialect

entity/User.hbm.xml

lazy-init="default" autowire="default" dependency-check="default">

删除sam-2.2.3.jar cglib-2.1.3.jar 运行,OK.

相关主题
文本预览
相关文档 最新文档