前端页面

展示数据的jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page import="java.util.*" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><script type="text/javascript">if ("${msg}" != "") {alert("${msg}");}</script><c:remove var="msg"></c:remove><link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css"/><link rel="stylesheet" href="${pageContext.request.contextPath}/css/productList.css"/><link rel="stylesheet" href="${pageContext.request.contextPath}/css/addBook.css"/><script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.3.1.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script><title></title>
</head>
<body>
<div id="brall"><div id="nav"><p>商品管理>商品列表</p></div><div id="condition" style="text-align: center"><form id="myform">商品名称:<input name="pname" id="pname">&nbsp;&nbsp;&nbsp;商品类型:<select name="typeid" id="typeid"><option value="-1">请选择</option><c:forEach items="${typeList}" var="pt"><option value="${pt.typeId}">${pt.typeName}</option></c:forEach></select>&nbsp;&nbsp;&nbsp;价格:<input name="lprice" id="lprice">-<input name="hprice" id="hprice"><input type="button" value="查询" onclick="condition()"></form></div><br><div id="table"><c:choose><c:when test="${info.list.size()!=0}"><div id="top"><input type="checkbox" id="all" onclick="allClick()" style="margin-left: 50px">&nbsp;&nbsp;全选<a href="${pageContext.request.contextPath}/admin/addproduct.jsp"><input type="button" class="btn btn-warning" id="btn1" value="新增商品"></a><input type="button" class="btn btn-warning" id="btn2" value="批量删除" onclick="deleteBatch()"></div><!--显示分页后的商品--><div id="middle"><table class="table table-bordered table-striped"><tr><th></th><th>商品名</th><th>商品介绍</th><th>定价(元)</th><th>商品图片</th><th>商品数量</th><th>操作</th></tr><!--取出从后台返回的数据--><c:forEach items="${info.list}" var="p"><tr><td valign="center" align="center"><input type="checkbox" name="ck" id="ck" value="${p.pId}" onclick="ckClick()"></td><td>${p.pName}</td><td>${p.pContent}</td><td>${p.pPrice}</td><td><img width="55px" height="45px" src="${pageContext.request.contextPath}/image_big/${p.pImage}"></td><td>${p.pNumber}</td><td><button type="button" class="btn btn-info " onclick="one(${p.pId})">编辑</button><button type="button" class="btn btn-warning" id="mydel" onclick="del(${p.pId},${info.pageNum})">删除</button></td></tr></c:forEach></table><!--分页栏--><div id="bottom"><div><nav aria-label="..." style="text-align:center;"><ul class="pagination"><!--向左翻页图标--><li><a href="javascript:ajaxsplit(${info.prePage})" aria-label="Previous"><span aria-hidden="true">«</span></a></li><c:forEach begin="1" end="${info.pages}" var="i"><c:if test="${info.pageNum==i}"><li><a href="javascript:ajaxsplit(${i})" style="background-color: grey">${i}</a></li></c:if><c:if test="${info.pageNum!=i}"><li><a href="javascript:ajaxsplit(${i})">${i}</a></li></c:if></c:forEach><!--向右翻页图标--><li><a href="javascript:ajaxsplit(${info.nextPage})" aria-label="Next"><span aria-hidden="true">»</span></a></li><li style=" margin-left:150px;color: #0e90d2;height: 35px; line-height: 35px;">总共&nbsp;&nbsp;&nbsp;<font style="color:orange;">${info.pages}</font>&nbsp;&nbsp;&nbsp;页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<c:if test="${info.pageNum!=0}">当前&nbsp;&nbsp;&nbsp;<font style="color:orange;">${info.pageNum}</font>&nbsp;&nbsp;&nbsp;页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</c:if><c:if test="${info.pageNum==0}">当前&nbsp;&nbsp;&nbsp;<font style="color:orange;">1</font>&nbsp;&nbsp;&nbsp;页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</c:if></li></ul></nav></div></div></div></c:when><c:otherwise><div><h2 style="width:1200px; text-align: center;color: orangered;margin-top: 100px">暂时没有符合条件的商品!</h2></div></c:otherwise></c:choose></div>
</div>
</body><!--分页的AJAX实现,通过绑定事件,点击页数的时候,再次向服务器端发出请求,进入ajaxSplit方法,并携带当前页数-->
<script type="text/javascript">function ajaxsplit(page) {//向服务发出ajax请求,请示page页中的所有数据,在当前页面上局部刷新显示$.ajax({url: "${pageContext.request.contextPath}/prod/ajaxSplit.action",data: {"page":page},type: "post",success: function () {//重新加载显示分页数据的容器$("#table").load("${pageContext.request.contextPath}/admin/product.jsp #table");}});}
</script></html>

2.业务层

package com.bjpowernode.service.impl;import com.bjpowernode.dao.ProductDao;
import com.bjpowernode.domain.Product;
import com.bjpowernode.domain.ProductExample;
import com.bjpowernode.service.ProductService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;
@Service
public class ProductServiceImpl implements ProductService {@AutowiredProductDao productDao;@Overridepublic PageInfo splitPage(int pageNum, int pageSize) {// 分页插件使用PageHelper工具类完成分页设置PageHelper.startPage(pageNum,pageSize);/*** 进行有条件的查询操作:按主键降序后查询出数据* 根据分页设置将查询到的数据封装到pageInfo对象中,返回pageInfo对象*/ProductExample example=new ProductExample();example.setOrderByClause("p_id desc");// 查询出的数据存储到list集合中List<Product> list=productDao.selectByExample(example);PageInfo<Product>pageInfo=new PageInfo<>(list);return pageInfo;}
}

3.控制层

package com.bjpowernode.controller;import com.bjpowernode.domain.Product;
import com.bjpowernode.service.ProductService;
import com.bjpowernode.utils.FileNameUtil;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Date;@Controller
@RequestMapping("/prod")
public class ProductController {@AutowiredProductService productService;// 前端请求进入该方法,首先显示第一页数据@RequestMapping("/splitFirst")public String split(HttpServletRequest request){PageInfo pageInfo=productService.splitPage(1,5);request.setAttribute("info",pageInfo);// 跳转到product.jsp,product.jsp页面被吸入主页面的右下半部分return "product";}//ajax分页翻页处理,前端需要将页面数据所在的页数一同携带进入该方法@ResponseBody@RequestMapping("/ajaxSplit")public  void ajaxSplit(int page, HttpSession httpSession){PageInfo pageInfo=productService.splitPage(page,5);httpSession.setAttribute("info",pageInfo);}
}

PageHelper分页插件使用教程相关推荐

  1. spring boot+mybatis+thymeleaf+pagehelper分页插件实现分页功能

    文章目录 前言 正文 业务场景 后端 pom.xml application.yml 实体类video.java和User.java----映射VideoMapper.xml----VideoMapp ...

  2. java ajax jquery分页插件_分享精心挑选的12款优秀jQuery Ajax分页插件和教程

    摘要:这篇jQuery栏目下的"分享精心挑选的12款优秀jQuery Ajax分页插件和教程",介绍的技术点是"jquery_ajax分页插件.jquery_ajax.a ...

  3. spring boot整合mybatis+通用mapper+pagehelper分页插件

    spring boot整合mybatis+通用mapper+pagehelper分页插件 pom依赖 <?xml version="1.0" encoding="U ...

  4. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我 ...

  5. SpringBoot中使用Mybatis-plus整合PageHelper分页插件踩坑

    今天使用SpringBoot中使用Mybatis-plus整PageHelper分页插件把我给坑惨了,我报错的pom.xml配置如下,其它的依赖就忽略掉了 <!--pagehelper --&g ...

  6. PageHelper 分页插件只用Page、不用PageInfo 的写法

    PageHelper 分页插件,学到的写法是得到Page 对象后再转成PageInfo 对象,但Page 是ArrayList 的子类,里面包含了数据列表和分页信息,为什么不能直接用Page 对象做分 ...

  7. springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/zab635590867/article ...

  8. Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件

    前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...

  9. PageHelper 分页插件使用总结

    一个简洁的博客网站:http://lss-coding.top,欢迎大家来访 学习娱乐导航页:http://miss123.top/ 一.认识 PageHelper **官网:**https://pa ...

最新文章

  1. eclipse创建springboot项目_创建一个 Spring Boot 项目,你会几种方法?
  2. html写三角形,css3怎么写三角形?
  3. Linux上(Redhat7)实现NFS文件共享服务
  4. zblog php版调用代码,zblogphp调用指定单篇文章代码升级版
  5. mysql savepoint语法_SAVEPOINT语法错误一例
  6. OllyDbg笔记-暴力破解简单判断程序(TraceMe.exe与简单Qt程序)
  7. JavaScript遇到浏览器不兼容与解决方案
  8. win10系统如何启动sql服务器,升级win10后sql2005 sql服务无法启动如何解决
  9. BT种子文件(.torrent)的具体文件结构
  10. scratch少儿编程与游戏:丛林狩猎
  11. win 10 安装nginx
  12. 群体遗传学瓶颈效应bottleneck effect
  13. ETABS和SAP2000中质量源的定义
  14. 超百万观众同场看直播秒开不卡顿,快手是如何做到的?|首次披露
  15. 慧荣SM2269XT量产开卡成功,附SM2269XT量产工具、开卡软件
  16. 人脸识别技术有哪些方案
  17. 什么是uboot与bios?
  18. Android必备:签名整理
  19. 单招面试你为什么报考计算机专业,单招面试问题你为什么选择我们学校
  20. web前端常用快捷键

热门文章

  1. Oracle如何获取最近七天的数据
  2. 常见胸肌问题解答(四):胸肌块形不够宽
  3. C#与三菱,西门子,台达,基恩士,等各品牌plc通讯源码
  4. 关于png、jpg、gif切图时的使用感悟
  5. C++贪心——混合牛奶
  6. JS之判断是否为数组的方法
  7. MindMapper中的鱼骨图该怎样进行设置
  8. Linux 组网入门(转)
  9. 在VS17,VS19中使用VS15的库?
  10. 上海亚商投顾:沪指窄幅震荡 ChatGPT概念再度走高