SSH框架流程

流程图

  

具体步骤

  一、实体类

public class Category implements Serializable {
    private Integer cid;
    private String cname;
    //一级分类中存放二级分类的集合
    private Set<CategorySecond> categorySeconds=new HashSet<CategorySecond>();

    public Set<CategorySecond> getCategorySeconds() {
        return categorySeconds;
    }
    public void setCategorySeconds(Set<CategorySecond> categorySeconds) {
        this.categorySeconds = categorySeconds;
    }
    public Integer getCid() {
        return cid;
    }
    public void setCid(Integer cid) {
        this.cid = cid;
    }
    public String getCname() {
        return cname;
    }
    public void setCname(String cname) {
        this.cname = cname;
    }
}

  二、映射文件

    1、代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping>
    <class name="cn.itcast.shop.category.vo.Category" table="category">
        <id name="cid">
            <generator class="native"/>
        </id>
        <property name="cname"/>

        <!-- 配置二级分类的集合 -->
        <set order-by="csid" name="categorySeconds" lazy="false">
            <key column="cid"/>
            <one-to-many class="cn.itcast.shop.categorysecond.vo.CategorySecond"/>
        </set>
    </class>
</hibernate-mapping>  

    2、配置到spring

<!--Hibernate的相关信息 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <!-- 注入连接池 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- 配置Hibernate的其他的属性 -->
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.connection.autocommit">false</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <!-- 配置Hibernate的映射文件 -->
    <property name="mappingResources">
        <list>
            <value>cn/itcast/shop/category/vo/Category.hbm.xml</value>
        </list>
    </property>
</bean>    

  三、对Service和Dao进行配置

    1、Service

@Transactional
public class CategoryService {
    //注入CategoryDao
    private CategoryDao categoryDao;

    public void setCategoryDao(CategoryDao categoryDao) {
        this.categoryDao = categoryDao;
    }
}

    2、Dao

public class CategoryDao extends HibernateDaoSupport {
    //Dao层的查询所有一级分类的方法
    public List<Category> findAll() {
        String hql="from Category";
        List<Category> list=this.getHibernateTemplate().find(hql);
        return list;
    }
}

  四、将Service和Dao配置到spring

<!-- Service配置====================================================== -->
<bean id="categoryService" class="cn.itcast.shop.category.service.CategoryService">
    <property name="categoryDao" ref="categoryDao"/>
</bean>

<!-- Dao配置============================================================= -->
<bean id="categoryDao" class="cn.itcast.shop.category.dao.CategoryDao">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

  五、在Action中注入Service

public class IndexAction extends ActionSupport {
    //注入一级分类的service
    private CategoryService categoryService;

    public void setCategoryService(CategoryService categoryService) {
        this.categoryService = categoryService;
    }

    //注入商品的Service
    private ProductService productService;

    public void setProductService(ProductService productService) {
        this.productService = productService;
    }

    /*
     * 执行的访问首页的方法
     */
    public String execute(){
          //查询所有一级分类的集合
        List<Category> cList=categoryService.findAll();
        //将一级分类存入到session范围
        ActionContext.getContext().getSession().put("cList", cList);
        //查询热门商品
        List<Product> hList=productService.findHot();
        //将商品的信息存入到值栈中
        ActionContext.getContext().getValueStack().set("hList", hList);

        return "index";
    }
}

  六、将数据显示到jsp页面

<%@ taglib uri="/struts-tags" prefix="s" %>
<div class="span24">
    <ul class="mainNav">
        <li>
            <a href="${ pageContext.request.contextPath }/index.action">首页</a>
            |
        </li>
        <!-- 如果保存在session中 -->
        <s:iterator var="c" value="#session.cList">
        <!-- 如果保存在值栈中 -->
        <!-- <s:iterator var="p" value="nList"> -->
            <li>
                <a href="${pageContext.request.contextPath }/product_findByCid.action?cid=<s:property value="#c.cid"/>&page=1"><s:property value="#c.cname"/></a>
                |
            </li>
        </s:iterator>
    </ul>
</div>

  七、配置到Struts中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.devMode" value="false" />
    <package name="shop" extends="struts-default" namespace="/">
        <!-- 全局页面 -->
        <global-results>
            <result name="msg">/WEB-INF/jsp/msg.jsp</result>
        </global-results>

        <!-- 配置首页访问的Action -->
        <action name="index" class="indexAction">
         <result name="index">/WEB-INF/jsp/index.jsp</result>
        </action>

        <!-- 验证码Action -->
        <action name="checkImg" class="checkImgAction"></action>

    </package>
</struts>
时间: 2024-12-14 11:43:48

SSH框架流程的相关文章

SSH框架的开发流程

最近一段时间在使用SSH框架开发一个系统,对SSH框架又重新学习一遍.发现之前学的一些东西都忘记了,而且对很多知识点都理解的不是很透彻.最近在学习的过程中,又对一些知识点重新整理了下,但是还是比较凌乱,等项目完结后,我会再整体把开发流程梳理一遍.今天只是想跟大家分享一下大概的一个流程. 1.首先把需要的jar包都准备好,大概有86个包. 2.对于一个好的项目应该有一个非常好的结构. --src ----domain ----dao ----controller 2.根据你的数据库表写你的doma

SSH框架总结(框架分析+环境搭建+实例源代码下载)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是眼下较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的总体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及

SSH框架--struts深入详解(一)

学习了struts,但是对于它的由来,以及为什么使用action和struts.xml的方式而不采用以前的servlet方式,有些疑问,到底之前的方式有什么弊端,struts又给我们带来了什么便利? 下面一一为大家解答! struts的由来: 随着JSP与Servlet 技术大量应用于以Web为基础的应用程序,为了提升Web 应用程序可维护性与重复使用性,Java开发人员提出了一些较佳的开发模式.比较常见的两种JSP应用架构分别为Model1 与Model 2.详情参见(JAVA学习篇--JAV

【课程分享】jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自动化(VSS、operamasks-UI框架)

我的qq是2059055336,对这个课程有兴趣的可以加我qq联系. 课程下载地址:链接:http://pan.baidu.com/share/link?shareid=395438909&uk=3611155194 密码:mlvl 课程下载地址:http://www.kuaipan.cn/file/id_192202874577496484.htm?source=1 一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景 jQuery 2.0 正式版发布,不在支持 IE 6/7/8

JAVA SSH 框架介绍

SSH 为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架. Struts Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注.Struts把Servlet.JSP.自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套M

SSH框架总结(框架分析+环境搭建+实例源码下载)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及

JAVA中SSH框架

前言 最近刚开始学习Java后端的一些知识,很多不懂的或者要学习的记录在这里,希望自己学习的同时也能帮助一些别人,如果有什么不对的地方或者需要补充的也欢迎大家留言,我也会继续学习和修改的! 标签 一.spring Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯.Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器.然而,这仅仅是完整图景中的一

选择J2EE的SSH框架的理由

Struts2框架: Struts2框架的基本思想是采用MVC设计模式,即将应用设计成模型(Model).视图(View)和控制器(Control)三个部分:控制部分由DispatchFilter承担,模型部分是由一系列的拦截器(Interceptors).Action组件和ActionContext组件组成,视图组件则是由Result组件组成. Struts2是这样工作的:首先由我们即用户在浏览器中输入一个url地址,例如:http://localhost:8080/Struts2,此时浏览器

SSH框架结构分析

分类: 工作问题2012-03-29 18:10 1511人阅读 评论(0) 收藏 举报 框架sshhibernatespringstrutsdao 最近在弄j2ee,发现还是学到了很多东西,心情happy啊!昨天看到了一个文章是关于ssh的,就弄下来了,后面加点自己的东西,很感谢网上的各位前辈的总结.一个spring2.5+hibernate3.2+struts2.0组合框架,使用spring的IoC来管理应用的所有bean,包括struts2的action,充分发挥了spring轻量级框架的