【项目实战】---首页一级分类的显示

在前面的博文中,小编主要简单的介绍了用户模块中的验证码程序是如何实现的,今天继续来介绍我们的项目,今天小编主要简单的介绍一下如何实现首页的一级分类的显示,比如小伙伴现在看的CSDN,如下所示,她的一级分类:

无论我们点击哪个页面,这些分类总是会出现,那么她到底是如何实现的呢?今天这篇博文,小编结合自己现在正在做的这个项目,总结一下如何实现首页一级分类的显示,希望可以帮助到有需要的小伙伴们,不足之处,小伙伴多多指教。
第一步、我们需要建立一个分类的表,以及向表中插入相关的数据,建表语句,如下所示:

CREATE TABLE `category` (
  `cid` int(11) NOT NULL AUTO_INCREMENT,
  `cname` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

接着,我们在表里插入几条数据,小伙伴们,可以根据自己的情况,insert几条数据即可。
第二步、新建包action、dao、service、vo,如下所示:

第三步、在vo包里面新建类Category,编写相关代码,并且生成get和set方法,代码如下所示:

package cn.itcast.shop.category.vo;  

public class Category {  

    private Integer cid;
    private String cname;
    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;
    }  

}  

接着,在vo中新建一个Category.hbm.xml,编写相关代码,那么.hbm.xml作用是什么?实体与表的映射关系通过xml来描述的文件,在hibernate.cfg.xml中管理,在项目启动的守候加载到内存,hbm指的是hibernate的映射文件,映射文件也称为映射文档,用于向hibernate提供关于将对象持久化到关系数据库中的信息,持久化对象的映射定义可全部存储在同一个映射文件中,也可将每个对象的映射定义存储在独立的文件中,后一种方法较好,因为将大量持久化类的映射定义存储在一个文件中比较麻烦,建议采用每个类一个文件的方法来组织映射文档.使用多个映射文件还有一个优点:如果将所有映射定义都存储到一个文件中,将难以调试和隔离特定类的映射定义错误.映射文件的命名规则是,使用持久化类的类名,并使用扩展名hbm.xml.映射文件需要在hibernate.cfg.xml中注册,最好与领域对象类放在同一目录中,这样修改起来很方便.xxx.hbm.xml文件是hibernate中的映射文件,hbm表示是hibernate的关系映射文件,当然啦,我们也可以不这样写,只不过这样写规范一点。代码如下所示:

<?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"/>  

    </class>
</hibernate-mapping>  

不要忘记了,需要在applicationContext中进行配置哦,如下所示:

<!-- 配置hibernate的映射文件 -->
        <property name="mappingResources">
            <list>
                <value>cn/itcast/shop/category/vo/Category.hbm.xml</value>
            </list>
        </property>  

第三步、在action、dao、service中新建类,如下所示:


第四步、接着在applicationContext中配置,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>  

第五步、接着,在service中注入Dao,如下所示:

package cn.itcast.shop.category.service;  

import java.util.List;  

import cn.itcast.shop.category.dao.CategoryDao;
import cn.itcast.shop.category.vo.Category;  

/**
 * 一级分类的业务层对象
 * @author 丁国华
 *
 */
public class CategoryService {  

    //注入CategoryDao
    private CategoryDao categoryDao;  

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

}  

第六步、我们开始编写业务逻辑代码,我们知道首页一级分类,所以应该是在IndexAction中注入一级分类的service,并提供set方法,代码如下所示:

package cn.itcast.shop.index.action;

import java.util.List;

import javax.swing.plaf.basic.BasicSliderUI.ActionScroller;

import cn.itcast.shop.category.service.CategoryService;
import cn.itcast.shop.category.vo.Category;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
 * 首页访问的Action
 * @author 丁国华
 *
 */

public class IndexAction extends ActionSupport {

	//注入一级分类的Service
	private CategoryService categoryService;

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

}

第七步、接着,我们进行查询,在service中有一个查询的方法:

/**
 * 执行的访问首页的方法
 */
public String execute(){
	//查询所有一级分类集合
	List<Category> cList = categoryService.findAll();
	return "index";
}

接着,我们在categoryService中晚上这个方法,如下所示:

package cn.itcast.shop.category.service;

import java.util.List;

import cn.itcast.shop.category.dao.CategoryDao;
import cn.itcast.shop.category.vo.Category;

/**
 * 一级分类的业务层对象
 * @author 丁国华
 *
 */
public class CategoryService {

	//注入CategoryDao
	private CategoryDao categoryDao;

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

	//业务层查询所有一级分类的方法
	public List<Category> findAll() {
		return categoryDao.findAll();
	}

}

第八步、接着,编写dao里面的方法,代码如下所示:

package cn.itcast.shop.category.dao;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.itcast.shop.category.vo.Category;

/**
 * 一级分类的持久层对象
 * @author Flower
 *
 */

public class CategoryDao extends HibernateDaoSupport {

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

	}

}

接着,我们需要将一级分类的数据显示到页面,怎么显示呢?我们可以通过值栈,我们可以把数据存到值栈里面,然后使用迭代标签,把数据显示到页面,这是一种方法,我们知道,一级分类呢,在每一个页面上都有,我们可以把他存入到session里面,后续的查询,我们可以不通过数据库进行查询,编写代码:

package cn.itcast.shop.index.action;

import java.util.List;

import javax.swing.plaf.basic.BasicSliderUI.ActionScroller;

import cn.itcast.shop.category.service.CategoryService;
import cn.itcast.shop.category.vo.Category;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
 * 首页访问的Action
 * @author Flower
 *
 */

public class IndexAction extends ActionSupport {

	//注入一级分类的Service
	private CategoryService categoryService;

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

	/**
	 * 执行的访问首页的方法
	 */
	public String execute(){
		//查询所有一级分类集合
		List<Category> cList = categoryService.findAll();
		//将一级分类存到session里面
		ActionContext.getContext().getSession().put("cList",cList);
		return "index";
	}

}

接着,我们接着,在jsp页面进行迭代,如下所示:

<div class="span24">
	<ul class="mainNav">
		<li><a href="${ pageContext.request.contextPath }/index.action">首页</a> |</li>
		<s:iterator var="c" value="#session.cList">
			<li><a href="./蔬菜分类.htm"><s:property value="#c.cname"/></a> |</li>
		</s:iterator>

	</ul>
</div>

最后,我们来看一下效果,如下所示:

小编寄语:该博文,小编主要介绍了如何在项目中实现首页一级分类的显示,总的老说,实现思路是这个样子的:
1、首先,我们需要创建表,以及在表之中插入数据。
2、新建包action、dao、service、vo。
3、在vo里面新建类Category,编写代码,两个实体Integer cid和String cname,生成get和set方法。
4、在vo中新建一个Category.hbm.xml编写相关代码。
5、在applicationContext中配置hibernate映射,映射搞定。
6、分别在action、dao、service中新建类。
7、在applicationContext中进行配置,也就是service和dao都交给spring进行管理。
8、在service中注入dao,在applicationContext中进行注入,注入sessionFactory。
9、在service和dao中进行相应的配置。
好了,今天的分享到这里就要和小伙伴们说再见了,有没有舍不得呢,在下篇博文中,小编将继续介绍项目的相关知识,敬请期待。

时间: 2024-08-18 09:50:58

【项目实战】---首页一级分类的显示的相关文章

cmd-使用tomcat的statut.bat启动solr工程,访问solr首页,页面部分类容显示加载中

问题描述 使用tomcat的statut.bat启动solr工程,访问solr首页,页面部分类容显示加载中 使用tomcat的statut.bat启动solr工程,访问solr首页,页面部分类容显示加载中,等了一会没反应,然后我就去在启动cmd窗口回车一下就可以继续访问了,这是怎么回事,求大神指导 解决方案 没有看明白你的操作,在cmd中回车下就能够访问? 建议启动后查看下tomcat的log日志,看看是否启动报错或者其他异常. 解决方案二: 启动脚本里含有PAUSE命令?回车后继续执行脚本了?

tomcat启动后,浏览器为什么显示不出来项目的首页

问题描述 tomcat启动后,浏览器为什么显示不出来项目的首页 tomcat正常启动后,浏览器可以显示tomcat首页,但显示不出来项目的登陆界面,但登陆界面的标题可以显示,页面就是无法打开.转段时间直接显示"您输入的网址无法访问!" 请问大神们,这是什么问题呢? 解决方案 项目相关的相关插件是不是都正确安装了呢 解决方案二: 这种情况,可以F12看下报的是什么错,我感觉很大可能是数据库的连接问题.数据库配置正确了么检查下! 解决方案三: 路径问题 把有关路径文件的检查一下 解决方案四

【SSH网上商城项目实战14】商城首页UI的设计

版权声明:尊重博主原创文章,转载请注明出处哦~http://blog.csdn.net/eson_15/article/details/51373403 目录(?)[+]         前面我们利用EasyUI和SSH搭建好了后台的基本框架,做好了后台的基本功能,包括对商品类别的管理和商品的管理等,这一节我们开始搭建前台页面. 做首页的思路:假设现在商品的业务逻辑都有了,首先我们需要创建一个监听器,在项目启动时将首页的数据查询出来放到application里,即在监听器里调用后台商品业务逻辑的

Bootstrap项目实战之首页内容介绍(全)_javascript技巧

本节课第一节我们轮播图的下方,设计一个内容介绍,内容介绍分两部分,本次为上半部分. 一.首页内容介绍 //关于上节课轮播图,手册上其实有一个更好的方案,并不需要通过额外的代码控制. <a href="#myCarousel" data-slide="prev" class="carousel-control left"> <span class="glyphicon glyphicon-chevron-left&quo

Hadoop项目实战-用户行为分析之应用概述(二)

1.概述 本课程的视频教程地址:<项目整体概述> 本节给大家分享的主题如下图所示: 下面我开始为大家分享第二节的内容--<项目整体概述>,下面开始今天的分享内容. 2.内容 从本节开始,我们将进入到Hadoop项目的整体概述一节学习,本节课程为大家介绍的主要知识点有一下内容,如下图所示: 下面,我们首先来看看项目的整体流程,其流程如下图所示: 项目流程可以分为4个模块,他们分别是数据收集,集群存储,分析计算和结果处理. 下面我分别为大家讲解这4个模块的作用. 我们知道,在做统计时,

精通Python网络爬虫:核心技术、框架与项目实战导读

前 言 为什么写这本书 网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中.在搜索引擎中,主要使用通用网络爬虫对网页进行爬取及存储. 随着大数据时代的到来,我们经常需要在海量数据的互联网环境中搜集一些特定的数据并对其进行分析,我们可以使用网络爬虫对这些特定的数据进行爬取,并对一些无关的数据进行过滤,将目标数据筛选出来.对特定的数据进行爬取的爬虫,我们将其称为聚焦网络爬虫.在大数据时代,聚焦网络爬虫的应用需求越来越大. 目前在国内Python网络爬虫的书籍基本上都是从国外引进翻译的,

【项目实战】---需求分析+表关系分析

    SSH---小编初次接触的时候傻傻的以为这个跟SHE有什么关系呢?又是哪路明星歌手,后来才知道小编又土鳖了,原来SSH是这个样子滴,百度百科对她这样阐述,SSH即 Spring + Struts +Hibernate. Struts对Model,View和Controller都提供了对应的组件.Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,她由Rod Johnson创建.她是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以

《Hadoop海量数据处理:技术详解与项目实战》一1.2 Hadoop和大数据

1.2 Hadoop和大数据 Hadoop海量数据处理:技术详解与项目实战 在人们对云计算这个词汇耳熟能详之后,大数据这个词汇又在最短时间内进入大众视野.云计算对于普通人来说就像云一样,一直没有机会能够真正感受到,而大数据则更加实际,是确确实实能够改变人们生活的事物.Hadoop从某个方面来说,与大数据结合得更加紧密,它就是为大数据而生的. 1.2.1 大数据的定义 "大数据"(big data),一个看似通俗直白.简单朴实的名词,却无疑成为了时下IT界最炙手可热的名词,在全球引领了新

【C/C++学院】(28)项目实战HttpServer--源码

项目实战HttpServer--源码下载地址 myhttp脚本文件 #!/bin/sh WHOAMI=`whoami` PID=`ps -u $WHOAMI | grep myhttpd | awk '{print $1}'` if (test "$#" = 0) then echo "Usage: $0 [stop] [start] [status]" exit 0 fi if (test "$1" = "start") t