Struts+Spring+Hibernate--SSH整合实例:
网 上虽然有很多 SSH 整 合的小例子,但很多程序都出现了不是这样,就是那样的错误。自己总结了一下,终于做出的 Struts+Spring+Hibernate 整 合的小例子,也是最基础的 SSH 实 例,虽然是小例子,但什么程序都是从基础的做起。如果你弄明白了这个小实例,相信你的 SSH 整合框架技术也会提高很 多。
在 做本例前,需要熟悉对 Struts , Hibernate 的反向工 程等的基本操作。
开发工具: MyEclipse+MySQL+Tomcat
说明:本实例是简单注册程序(只有 两个属性)
数据库脚本: user.sql
DROP TABLE IF EXISTS `user`; 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.5
2 添加 Struts 支持(项目右键 à MyEclipse Struts Capabilities … )
选 择:
1 ) Struts specification : Struts 1.3
2 ) Base package for 那 位 classes : edu.syict.struts
3 添加 Spring 支持(项目右键 à MyEclipse Spring Capabilities … )
选 择:
1) Spring version : Spring 2.0
2) Select the libraries to add the buildpath :
Spring 2.0 AOP Libraries
Spring 2.0 Core Libraries
Spring 2.0 Persistence Core Libraries
Spring 2.0 Persistence JDBC Libraries
Spring 2.0 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.1
2 ) Select the libraries to ad to the buildpath : Hibernate 3.1 Core Libraries
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 。
二 数据库方面
1 ) 建立包 edu.syict.pojo
Hibernate 反 向工程:
选择下列内容:
Create POJO<>DB Table mapping information 复选框
Create a Hibernate mapping file 单 选框
Update Hibernate configuration with mapping resource location 复 选框
Java Data Object ( POJO<>DB Table )复选框
其 余的都不选择。 à Next
Id Generator : native à Finish
2 ) 新建接口: edu.syict.dao.UserDao.java ( 所在包: edu.syict.dao )
package edu.syict.dao; import edu.syict.pojo.User; public interface UserDao { public void save(User user); } |
3 ) 建立 UserDao 接 口实现类 edu.syict.dao.impl.UserDaoImpl
类 继承 HibernateDaoSupport , 接口继承 UserDao
package edu.syict.dao; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import edu.syict.pojo.User; public class UserDaoImpl extends HibernateDaoSupport implements UserDao { public void save(User user) { try { this .getHibernateTemplate().saveOrUpdate(user); } catch (RuntimeException re){ throw re; } } } |
三 建立 JSP 页面, Action 类
1) 打 开 struts-config.xml 配 置文件:右键 new à Form,Action and JSP
2) User case : register
Form Impl : Dynamic 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 文 件 ( 全 部 )
struts-config.xml 文 件 ( 全 部 )
<? xml version = "1.0" encoding = "UTF-8" ?> <! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd" >
< struts-config > < form-beans > < form-bean name = "registerForm" type = "org.apache.struts.action.DynaActionForm" > < form-property name = "password" type = "java.lang.String" /> < form-property name = "username" 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 = "edu.syict.struts.action.RegisterAction" /> </ action-mappings > < controller processorClass = "org.springframework.web.struts.DelegatingRequestProcessor" /> < message-resources parameter = "edu.syict.struts.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 > 用户注册 </ title > </ head > < body > SSH 整合 < br >< hr > < h3 > 用户注册 </ h3 > < html:form action = "/register" > 用户名: < html:text property = "username" />< html:errors property = "username" />< br /> 密 码: < html:text property = "password" />< html:errors property = "password" />< br /> < html:submit value = " 注册 " /> < html:reset value = " 重置 " /> </ html:form > </ body > </ html > |