速动画教程第十八集 SSH框架的构建
录像下载 http://sonic.peakle.net/download/sonic018.rar
此过程将包括以下几个框架
Struts
、
Spring
、
Hibernate
、
Tiles
、
validator
工具
:Eclipse3.1
、
MyEclipse4.1.1
、
Poperties Editor
插件
新建工程 oa
jstl标签库很好用,所以也把它加载上
增加 Struts 框架
因为在整个架构中 Struts 属于 UI 层,所以将 struts 放入 com.oa.view 包中
增加 Spring 框架
将配置文件放入 /WEB-INF/ 目录内
在增加 Hibernate 框架之前,如果没有配置过数据连接的话,请打开 MyEclipse Database Exploring 视图
配置连接:以连接 MySql 为例
增加 Hibernate 框架
在配置选项中选择使用 Spring 的配置文件,并输入 sessionFactory
Hibernate 属于 Data 层,所以将它放入 com.oa.data 包内
逻辑层的包为 com.oa.model
以下为目录结构
+ src
+ --com.oa.data //数据层
+ --com.oa.data.bo //BO对像和映射文件
+ --com.oa.data.dao //DAO对像的接口
+ --com.oa.data.dao.impl //DAO对像的实例
+ --com.oa.model 逻辑层
+ --com.oa.model.service // Service对像的接口
+ --com.oa.model.service.impl //Service对像的实例
+ --com.oa.view 视图层
+ --com.oa.view.action // Action对像
+ --com.oa.view.tag // 标签
集成框架:
Spring 和 Hibernate 的集成已经由 MyEclipse 的向导完成
Struts 和 Spring 的集成将使用 Struts 插件的方式进行集成
Tiles
、
validator
和
Struts
的集成也是使用插件的方式
完整的配置文件如下
:
<?
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
/>
<
global-exceptions
/>
<
global-forwards
/>
<
action-mappings
/>
<
message-resources
parameter
=
"com.oa.web.struts.ApplicationResources"
/>
<
plug-in
className
=
"org.apache.struts.tiles.TilesPlugin"
>
<
set-property
property
=
"definitions-parser-validate"
value
=
"true"
/>
<
set-property
property
=
"definitions-config"
value
=
"/WEB-INF/tiles-config.xml"
/>
</
plug-in
>
<
plug-in
className
=
"org.apache.struts.validator.ValidatorPlugIn"
>
<
set-property
property
=
"pathnames"
value
=
"/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
/>
</
plug-in
>
<
plug-in
className
=
"org.springframework.web.struts.ContextLoaderPlugIn"
>
<
set-property
property
=
"contextConfigLocation"
value
=
"/WEB-INF/applicationContext.xml,/WEB-INF/serviceContext.xml,/WEB-INF/
view
Context.xml"
/>
</
plug-in
>
</
struts-config
>
创建
tiles-config.xml
文件
,
内容如下
:
<?xml version="1.0" encoding="UTF-8"?>
<tiles-definitions>
</tiles-definitions>
注意以下几点:
多个配置文件可用逗号分隔
Validator
的配置文件
"/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
,这两个文件在
/WEB-INF/
目录都没有,
validator-rules.xml
文件需要从
struts
的包中拷贝过来
,
validation.xml
文件需要自行创建
此文件中spring配置文件我将它分为三个,以区分三层结构中不同的配置,请不要直接在其它两个配置文件中写配置信息,最好是先将配置信息写入到
applicationContext.xml
中,因为只有在此文件中 MyEclipse 才会验证配置信息的合法性
还是以 Login 为例做一下测试
先将大概用到的包都创建好
将配置文件中提到的文件都准备好
先将 spring 的配置文件创建好,文件格式使用 applicationContext.xml 的样式,内容如下:
serviceContext.xml viewContext.xml
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!
DOCTYPE
beans
PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
<
beans
>
</
beans
>
拷贝
validator-rules.xml
到
/WEB-INF/
目录
创建
validation.xml
文件到
/WEB-INF/
目录
,
文件内容可以为空
创建表
,
以下语句是使用
MySqlCC
生成的
CREATE TABLE `userlist` (
`id` int(11) NOT NULL auto_increment,
`userName` varchar(100) NOT NULL default '',
`userPwd` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
打开
MyEclipse Database Exploring
视图
,
创建
userlist
表的映射
根据向导创建映射文件
,
包插抽像类和
DAO
,
更改
Userlist
表映射为
User
对像
*
这里使用
MyEclipse4.1.1
创建映射文件后
,
文件并没有放到指定的包中
,
所以需要做以下修改
1
、移动
AbstractUser.java
、
User.java
、
User.hbm.xml
文件到
com.oa.data.bo
包内
2
、移动
UserDAO.java
文件到
com.oa.data.dao.impl
包内
3
、修改
applicationContext.xml
文件
,
红色字体部份为修改后的内容
<
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/oa/data/bo/User.hbm.xml
</
value
>
</
list
>
</
property
>
</
bean
>
<
bean
id
=
"UserDAO"
class
=
"
com.oa.data.dao.impl.UserDAO
"
>
<
property
name
=
"sessionFactory"
>
<
ref
bean
=
"sessionFactory"
/>
</
property
>
</
bean
>
4
、
修改
User.hbm.xml
文件
将
<
class
name
=
"com.oa.data.bo.User"
table
=
"userlist"
catalog
=
"test"
>
改为
<
class
name
=
"com.oa.data.bo.User"
table
=
"userlist"