昨天将框架整合完成,现在我主要实现昨天的需求,实现商品的列表查询,这时要涉及到jsp和serveilet知识,不清楚的朋友可以赶紧去补充下知识。

1、商品列表的实现

1.1、打开后台管理工程页面

分析:因为不能直接访问WEB-INF下面的资源,所以先写一个controller进行页面跳转展示首页。并且后台首页是easyUI开发的。

代码一

package com.taotao.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;/*** * @ClassName: PageController  * @Description: TODO(展示后台管理页面,页面跳转的controller)  * @author 汪本成  * @date 2016年8月7日 下午8:42:45  **/@Controller
public class PageController {/*** 打开首页* @return*/@RequestMapping("/")public String showIndex() {return "index";}/*** 展示其他页面* @param page* @return*/@RequestMapping("/{page}")public String showPage(@PathVariable String page) {return page;}
}

1.2、商品列表查询

这里需要注意几点;

1、请求的url:"/item/list",如图:

2、请求的参数;http://localhost:8080/item/list?page=1&rows=30  分页信息。

会出现400的Bad Request提示。

3、返回值是json的格式数据。

Easyui中datagrid控件要求的数据格式为:

{total:”2”,rows:[{“id”:”1”,”name”,”张三”},{“id”:”2”,”name”,”李四”}]}

1.3、Dao层

SQL语句:SELECT * from tb_item LIMIT 0,30

这里因为涉及要分页,但是Mapper是我们逆向生成的,不好改,所以这里考虑使用第三方插件来进行分页,是开源的。

1.3.1、PageHelper

官方网址是:https://github.com/pagehelper/Mybatis-PageHelper/tree/master/src/main/java/com/github/pagehelper

这里建议大家也可以写自己的开源项目放到上面。

1.3.2、PageHelper实现原理

maven将其引入工程中,如图:

1.3.3、PageHelper使用方法

第一步:引入pageHelper的jar包。

第二步:需要在SqlMapConfig.xml中配置插件。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 配置分页插件 --><plugins><plugin interceptor="com.github.pagehelper.PageHelper"><!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->        <property name="dialect" value="mysql"/></plugin></plugins>
</configuration>

第三步:在查询的sql语句执行之前,添加一行代码:PageHelper.startPage(1, 10);

注意:第一个参数是page,要显示第几页,第二个参数是rows,没页显示的记录数。

第四步:取查询结果的总数量:创建一个PageInfo类的对象,从对象中取分页信息。

1.3.4、分页测试

代码二

package com.taotao.controller;import java.util.List;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.taotao.mapper.TbItemMapper;
import com.taotao.pojo.TbItem;
import com.taotao.pojo.TbItemExample;/*** * @ClassName: TestPageHelper  * @Description: TODO(测试PageHelper)  * @author 汪本成  * @date 2016年8月7日 下午10:07:00  **/
public class TestPageHelper {@Testpublic void testPageHelper() {//创建一个spring容器ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");//从spring容器中获得Mapper的代理对象TbItemMapper mapper = applicationContext.getBean(TbItemMapper.class);//执行查询并分页TbItemExample example = new TbItemExample();//分页处理PageHelper.startPage(2, 10);List<TbItem> list = mapper.selectByExample(example);//取得商品列表for (TbItem tbItem : list) {System.out.println(tbItem.getTitle());}//取得分页信息PageInfo<TbItem> pageInfo = new PageInfo<>(list);//获取所有商品long total = pageInfo.getTotal();System.out.println("共有商品: " + total);}}

测试结果如下:

于是Dao可以实现逆向工程生成的mapper文件+PageHelper实现。

1.4、Service层

1、接收分页参数,一个是page一个是rows。调用dao查询商品列表。并分页。返回商品列表。

2、返回一个EasyUIDateGrid支持的数据格式。需要创建一个Pojo。此pojo应该放到taotao-common工程中。

代码三

package com.taotao.common.pojo;import java.util.List;/*** * @ClassName: EUDataGridResult  * @Description: TODO(javaBean,方便提供其他工程使用EasyUI)  * @author 汪本成  * @date 2016年8月7日 下午10:18:00  **/
public class EUDataGridResult {private long total;private List<?> rows;public long getTotal() {return total;}public void setTotal(long total) {this.total = total;}public List<?> getRows() {return rows;}public void setRows(List<?> rows) {this.rows = rows;}}

写好之后在去service层实现接口,编辑itemService接口

代码四

package com.taotao.service;import com.taotao.common.pojo.EUDataGridResult;
import com.taotao.pojo.TbItem;/*** * @ClassName: ItemService  * @Description: TODO(商品管理的itemService接口)  * @author 汪本成  * @date 2016年8月6日 下午10:31:12  **/
public interface ItemService {TbItem getItemById(long itemId);EUDataGridResult getItemList(int page, int rows);}

代码五

实现ItemService接口,添加商品查询

package com.taotao.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.taotao.common.pojo.EUDataGridResult;
import com.taotao.mapper.TbItemMapper;
import com.taotao.pojo.TbItem;
import com.taotao.pojo.TbItemExample;
import com.taotao.pojo.TbItemExample.Criteria;
import com.taotao.service.ItemService;/*** * @ClassName: ItemServiceImpl  * @Description: TODO(商品管理的ItemService)  * @author 汪本成  * @date 2016年8月6日 下午10:30:28  * @version 1.0*/@Service
public class ItemServiceImpl implements ItemService {@Autowiredprivate TbItemMapper itemMapper;@Overridepublic TbItem getItemById(long itemId) {// TODO Auto-generated method stub/*** 1、根据主键查询*//TbItem item = itemMapper.selectByPrimaryKey(itemId);/*** 2、根据条件进行查询*///添加查询条件TbItemExample example = new TbItemExample();Criteria criteria = example.createCriteria();criteria.andIdEqualTo(itemId);//返回查询结果到List中List<TbItem> list = itemMapper.selectByExample(example);//进行判断if(null != list && list.size() > 0) {TbItem item = list.get(0);return item;}return null;}/*** 商品列表查询*/@Overridepublic EUDataGridResult getItemList(int page, int rows) {//查询商品列表TbItemExample example = new TbItemExample();//分页处理PageHelper.startPage(page, rows);//取出商品列表List<TbItem> list = itemMapper.selectByExample(example);//创建一个返回值对象EUDataGridResult result = new EUDataGridResult();result.setRows(list);//取出商品记录总条数PageInfo<TbItem> pageInfo = new PageInfo<>(list);result.setTotal(pageInfo.getTotal());return result;}}

1.5、Controller

实现查询结果页面的跳转

接收页面传递过来的参数page、rows。返回json格式的数据。EUDataGridResult

需要使用到@ResponseBody注解。

代码六

package com.taotao.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.taotao.common.pojo.EUDataGridResult;
import com.taotao.pojo.TbItem;
import com.taotao.service.ItemService;/*** * @ClassName: ItemController  * @Description: TODO(调用ItemService查询商品信息)  * @author 汪本成  * @date 2016年8月6日 下午10:49:53  **/@Controller
public class ItemController {@Autowiredprivate ItemService itemService;@RequestMapping("/item/{itemId}")@ResponseBodypublic TbItem getItemById(@PathVariable Long itemId) {TbItem tbItem = itemService.getItemById(itemId);return tbItem;}@RequestMapping("/item/list")@ResponseBodypublic EUDataGridResult getItemList(Integer page, Integer rows) {EUDataGridResult result = itemService.getItemList(page, rows);return result;}
}

1.6、错误处理

在启动taotao-manage时候,会出现一下错误

错误分析:原因是找不到com.taotao.common.pojo,这是我刚才写进去在taotao-common工程下的包,因为我没有将工程同步到本地仓库下

错误解决:点击maven install,同步工程到本地仓库。

但是maven intall之后启动仍然有如下错误:

错误分析:提示是没去清除启动web的日志信息,因为我没关之前启动的tomcat,导致日志被锁定,现在启动的tomcat当然不能clean日志了

错误解决:关闭tomcat,在重新启动taotao-manager就好。

启动成功后在刷新浏览器,结果如下:

需求实现成功!大家有木有感动,明天继续,欢迎关注!希望大家别只看不写,我也是晚上要花几小时写的,不够详细或者有问题可以給我留言,尽量及时答复!

淘淘商城---8.7相关推荐

  1. 淘淘商城FTP服务器、Redis和solr集群配置

    这是我通过网上查找到的image_server修改而成的,已适用于2015年版本的淘淘商城视频 注意要修改该虚拟机的虚拟网卡网段为192.168.1.133,下面是一些命令:(标红的地方为必须的操作! ...

  2. 删除桌面上淘宝商城,高清电影,精彩小游戏图标

    症状:最近很多朋友反应,桌面上多了高清电影.精彩小游戏.淘宝商城这三个图标,右击这几个图标,只有打开主页或创建快捷方式的选项,无法删除. 经过测试,解决方法如下: 首先在桌面上右击,依次点击排列图标, ...

  3. 淘淘商城学习笔记 之 上传图片到远程服务器,图片的回显出现的bug

    最近在学习淘淘商城中用到的技术,感觉受益良多,遇到一个比较奇怪的bug调了好久,遂心乐之分享于诸君 bug情况是这样的:在商城的后台上传图片之后图片回显不出来,右键查看链接,发现链接被加了localh ...

  4. 淘淘商城项目过程记录

    一.为什么要做这个项目 想想距上次写一个完整的项目已经过了很长时间,因为一直在学习其他的知识,对SSM 知识已经有了生疏,于是就想通过这个商城项目把所有的知识都串一遍,不仅能够回复以前的知识,也可以学 ...

  5. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第七天(非原创)

    文章大纲 一.课程介绍 二.Redis基础实战 三.Redis之高可用.集群.云平台搭建实战 四.淘淘商城Jedis整合spring 五.项目源码与资料下载 六.参考文章 一.课程介绍 一共14天课程 ...

  6. 淘淘商城项目分析报告

    目录 第1章 概述 1 1.1 课程设计的核心任务 1 1.2 课程设计工作进程 1 第2章 需求分析 2 2.1 用户需求 2 2.1.1 业务需求 2 2.1.2 商业需求 2 2.1.3 特殊需 ...

  7. 淘淘商城项目mysql服务器_SpringMVC+Spring+Mybatis+Mysql+Maven+Svn[ 淘淘商城项目环境搭建 ]...

    背景:淘淘商城项目的环境搭建 说明:采用SpringMVC+Spring+Mybatis+Mysql+Maven+Svn结构搭建,在开发之中可以参考其结构和搭建步骤去搭建实际的工程项目 工程结构简图: ...

  8. 毕设ssm商城系统_ssm商城系统(爱淘淘购物)项目源码

    ssm商城系统(爱淘淘购物)项目演示 本系统采用SSM架构来搭建. 服务器:tomcat7 java虚拟机:jdk1.7 数据库:mysql 前端:Vue + Bootstrap 管理员用户:root ...

  9. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第四天(非原创)

    文章大纲 一.课程介绍 二.今日内容介绍 三.参考资料下载 四.参考文章 一.课程介绍 一共14天课程 (1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用. (2)第二天:框架的 ...

  10. (转)淘淘商城系列——商品搜索功能测试

    http://blog.csdn.net/yerenyuan_pku/article/details/72941506 到这里,我相信大家也是不容易,我自己也算是很不容易写到这里,希望自己能一直写下去 ...

最新文章

  1. AI基础:入门人工智能必看的论文【附下载链接】
  2. java服务端的 极光推送
  3. C++回调函数是什么?
  4. c++ 13.二维数组
  5. c++ 10.跳转语句
  6. JS创建多个下载任务
  7. Core-3399-JD4 六核高性能AI核心板
  8. NET Core微服务之路:简单谈谈对ELK,Splunk,Exceptionless统一日志收集中心的心得体会...
  9. 当自己颓废的时候怎么激励自己?
  10. 2008服务器修改ipv4,Windows 2008/2012/2016如何添加配置多IP
  11. Rancher Managed Network实践
  12. 大型网站软件架构特点
  13. (翻译)禁用按钮不应变灰的原因
  14. 微信公众号发红包 php,php微信公众号开发之现金红包
  15. SQL计算日环比、周同比
  16. 综合布线系统在计算机信息系统中属于,计算机信息系统综合布线问题
  17. 吴裕雄--天生自然 诗经:古朗月行
  18. NodeJS简介-node.js是什么?
  19. 图神经网络 推荐系统,基于神经网络的推荐
  20. 本周必看 | 7月MLPython 最佳开源项目Top 10 :从几百个项目中脱颖而出,都在收藏!...

热门文章

  1. 使用Mysql函数生成指定的自增序列号
  2. 单周期CPU实验之学习之旅
  3. 关于excel导入带图片
  4. android 同根动画_[转载]Android anim动画切换效果
  5. oracle读取数据方式,关于oracle数据库读取数据的三种方式
  6. 爬虫笔记:BeautifulSoup详解
  7. python检测ipa证书过期时间
  8. 【IOS实用玩机技巧】爱思助手 IPA 签名功能常见问题汇总(iOS上架)
  9. python编程读取写入excel_Python实现读取并写入Excel文件过程解析
  10. 分类指标计算 Precision、Recall、F-score、TPR、FPR、TNR、FNR、AUC、Accuracy