此为预览版,不能保证无任何问?br />
速动画教程第十八?SSH框架的构?/span>

 

此过程将包括以下几个框架

Struts ?/span> Spring ?/span> Hibernate ?/span> Tiles ?/span> validator

 

工具 ?span lang="EN-US" style="COLOR: blue">Eclipse3.1 ?/span> MyEclipse4.1.1 ?/span> Poperties Editor 插件

 

新建工程 oa

 

jstl标签库很好用,所以也把它加载?o:p>

 

增加 Struts 框架

因为在整个架构中 Struts 属于 UI 层,所以将 struts 放入 com.oa.view 包中

 

增加 Spring 框架

将配置文件放?span style="COLOR: blue"> /WEB-INF/ 目录?o:p>

 

在增?Hibernate 框架之前,如果没有配置过数据连接的话,请打开 MyEclipse Database Exploring 视图

配置连接:以连接 MySql 为例

 

增加 Hibernate 框架

在配置选项中选择使用 Spring 的配置文件,并输?sessionFactory

Hibernate 属于 Data 层,所以将它放?com.oa.data 包内

 

逻辑层的包为 com.oa.model

 

以下为目录结?o:p>

+ src

   + --com.oa.data  //数据?o:p>

    + --com.oa.data.bo   //BO对像和映射文?o:p>

    + --com.oa.data.dao   //DAO对像的接?o:p>

       + --com.oa.data.dao.impl   //DAO对像的实?o:p>

   + --com.oa.model 逻辑?o:p>

    + --com.oa.model.service   // Service对像的接?o:p>

       + --com.oa.model.service.impl   //Service对像的实?o:p>

   + --com.oa.view  视图?o:p>

    + --com.oa.view.action   // Action对像

    + --com.oa.view.tag     // 标签

  

 

集成框架?o:p>

   

    Spring ?Hibernate 的集成已经由 MyEclipse 的向导完?o:p>

    Struts ?Spring 的集成将使用 Struts 插件的方式进行集?o:p>

    Tiles ?/span> validator ?/span> Struts 的集成也是使用插件的方式

 

完整的配置文件如?/span> ?span lang="EN-US">

<? 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 文件 ?/span> 内容如下 ?span lang="EN-US">

<?xml version="1.0" encoding="UTF-8"?>

<tiles-definitions>

</tiles-definitions>

 

注意以下几点?/span>

  多个配置文件可用逗号分隔

  Validator 的配置文? "/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" ?span style="mso-tab-count: 1">这两个文件在 /WEB-INF/ 目录都没有, validator-rules.xml 文件需要从 struts 的包中拷贝过?/span> ?/span> validation.xml 文件需要自行创?o:p>

  此文件中spring配置文件我将它分为三个,以区分三层结构中不同的配置,请不要直接在其它两个配置文件中写配置信息,最好是先将配置信息写入? applicationContext.xml 中,因为只有在此文件?MyEclipse 才会验证配置信息的合法?o:p>

 

还是?Login 为例做一下测?o:p>

 

先将大概用到的包都创建好

 

将配置文件中提到的文件都准备?o:p>

   先将 spring 的配置文件创建好,文件格式使?applicationContext.xml 的样式,内容如下?o:p>

     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 ?/span> /WEB-INF/ 目录

   创建 validation.xml 文件?/span> /WEB-INF/ 目录 ?/span> 文件内容可以为空

 

创建?/span> ?/span> 以下语句是使?/span> MyEclipse Database Exploring 生成?/span>

create table ` test `.` userlist `(

`id` int (11) PRIMARY KEY not null ,

`userName` varchar (100) not null ,

`userPwd` varchar (100) not null )

 

打开 MyEclipse Database Exploring 视图 ?/span> 创建 userlist 表的映射

根据向导创建映射文件 ?/span> 包插抽像类和 DAO

 

移动 UserlistDAO.java 文件?/span> com.oa.data.dao.imap 包内

修改 applicationContext.xml 文件中因改动而产生错误的内容 ?/span> 修改后的内容如下 ?span lang="EN-US">

       < bean id = "UserlistDAO" class = " com.oa.data.dao.impl.UserlistDAO " >

       < property name = "sessionFactory" >

           < ref bean = "sessionFactory" />

       </ property >

    </ bean >

 

创建 UserlistDAO 的接口文?/span> IUserlistDAO ?/span> 移动?/span> com.oa.data.dao 包内 ?/span> 修改 UserlistDAO 的错?/span>

 

创建 IUserService 接口文件 ?/span> 创建此接口的实例 UserService ?/span> 此实例需要用?/span> userlistDAO ?/span> 所以需要做以下声明

private UserlistDAO userlistDAO

 

userlistDAO 属性需要使?/span> ioc 注入

完整代码如下 ?span lang="EN-US">

package com.oa.model.service.impl;

 

import com.oa.data.bo.Userlist;

import com.oa.data.dao.impl.UserlistDAO;

import com.oa.model.service.IUserService;

 

public class UserService implements IUserService {

 

    private UserlistDAO userlistDAO;

   

    public UserlistDAO getUserlistDAO() {

        return userlistDAO;

    }

 

    public void setUserlistDAO(UserlistDAO userlistDAO) {

        this.userlistDAO = userlistDAO;

    }

 

    public Userlist isValidUser(String username, String password) {

        // TODO Auto-generated method stub

        return null;

    }

 

}

 

配置 applicationContext.xml 文件 ?/span> 增加以下代码 ?span lang="EN-US">

       < bean id = "transactionManager" class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >

       < property name = "sessionFactory" >