项目实战---首页一级分类的显示
Posted 丁国华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目实战---首页一级分类的显示相关的知识,希望对你有一定的参考价值。
在前面的博文中,小编主要简单的介绍了用户模块中的验证码程序是如何实现的,今天继续来介绍我们的项目,今天小编主要简单的介绍一下如何实现首页的一级分类的显示,比如小伙伴现在看的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中进行相应的配置。
好了,今天的分享到这里就要和小伙伴们说再见了,有没有舍不得呢,在下篇博文中,小编将继续介绍项目的相关知识,敬请期待。
以上是关于项目实战---首页一级分类的显示的主要内容,如果未能解决你的问题,请参考以下文章