当前位置: 首页 > news >正文

项目实战:分页功能实战

1、在index.html添加点击事件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="style/index.css"><script src="script/axios.min.js"></script><script src="script/index.js"></script><script src="script/common.js"></script>
</head>
<body><div id="div0"><div id="div_title"><p>欢迎使用水果库存系统</p><div style="float: right;border: 0px solid red;margin-right:8%;margin-bottom: 4px"><a href="add.html" style="text-decoration: none">添加新库存</a></div></div><div id="div_fruit_table"><table id="fruit_tbl"><tr><th class="w25">名称</th><th class="w25">单价</th><th class="w25">库存</th><th>操作</th></tr><!--<tr><td><a href='edit.html?fid=1'>苹果</a></td><td>5</td><td>100</td><td><img class="delImg" src="imgs/del.png" onclick='delFruit(1)'/></td></tr>--></table></div><div id="div_pagination"><input type="button" class="btn" onclick="page('first')" value="首页"/><input type="button" class="btn" onclick="page('pre')" value="上一页"/><input type="button" class="btn" onclick="page('next')" value="下一页"/><input type="button" class="btn" onclick="page('last')" value="尾页"/></div></div>
</body>
</html>

2、编写html.js

2.2、common.js

function $(key){if(key){if(key.startsWith("#")){key = key.substring(1)return document.getElementById(key)}else{let nodeList = document.getElementsByName(key)return Array.from(nodeList)}}
}
window.onload=function(){loadData();
}
let pageNo = 1;
let pageCount = 0;
function page(str) {if (str) {if (str == "first") {pageNo = 1;}else if (str == "pre") {pageNo = pageNo - 1;}else if (str == "next") {pageNo = pageNo + 1;}else if (str == "last") {pageNo = pageCount;}if (pageNo > pageCount) {pageNo=pageCount}if (pageNo <= 0) {pageNo=1}}loadData(pageNo)
}
loadData=function(pageNo=1){//pageNo这个参数有默认值,如果没有传值,则使用默认值 1axios({method: 'get',url: '/index',params: {pageNo: pageNo}}).then(response => {debuggerlet fruitList = response.data.data.listpageNo = response.data.data.pageNopageCount = response.data.data.pageCount// 此处使用的是axios,那么响应回来的数据自动就是json,// 不需要再进行parse(如果是原始的ajax操作,那么一定需要parse)// let fruitArr = JSON.parse(fruitList)let fruitArr = fruitList;let fruitTbl = $("#fruit_tbl")//向表格中添加行之前,先删除原来的行let rows=fruitTbl.rowsfor (let i = rows.length - 1; i >= 1; i--) {fruitTbl.deleteRow(i);}for (let i = 0; i < fruitArr.length; i++) {let tr = fruitTbl.insertRow();let fnameTD = tr.insertCell();let priceTD = tr.insertCell();let fcountTD = tr.insertCell();let operTD = tr.insertCell();let fruit = fruitArr[i];//fnameTD.innerText = fruit.fnamefnameTD.innerHTML = '<a href="edit.html?fid=' + fruit.fid + '">' + fruit.fname + '</a>';priceTD.innerText = fruit.price;fcountTD.innerText = fruit.fcount;operTD.innerHTML = "<img class=\"delImg\" src=\"imgs/del.png\" onclick=\"delFruit(" + fruit.fid + ")\"/>";}});
}delFruit = function (fid) {if (window.confirm('是否确认删除?')) {axios({method: 'get',url: 'del',params:{fid: fid,}}).then(response=>{if (response.data.flag) {window.location.reload();}});}
};

 3、编写IndexServlet

package com.csdn.fruit.servlet;
import com.csdn.fruit.dao.FruitDao;
import com.csdn.fruit.dao.impl.FruitDaoImpl;
import com.csdn.fruit.dto.PageInfo;
import com.csdn.fruit.dto.Result;
import com.csdn.fruit.pojo.Fruit;
import com.csdn.fruit.util.ResponseUtil;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/index")
public class IndexServlet extends HttpServlet {private FruitDao fruitDao = new FruitDaoImpl();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Integer pageNo = 1;String pageNoStr = req.getParameter("pageNo");if (pageNoStr != null && !"".equals(pageNoStr)) {pageNo = Integer.parseInt(pageNoStr);}List<Fruit> fruitList = fruitDao.getFruitList(pageNo, 5);//总记录条数Integer total = fruitDao.getRecordCount();//计算总页数//Integer pageSize = 5;//当前项目中,每页数据固定写死 5 条//Integer pageCount = (total + pageSize - 1) / pageSize;PageInfo<Fruit> pageInfo = new PageInfo<>(fruitList, pageNo, total);Result result = Result.OK(pageInfo);ResponseUtil.print(resp, result);}
}

http://www.lryc.cn/news/218039.html

相关文章:

  • AI人工智能大模型应用如何落地?
  • 【优选算法系列】第一节.栈的简介(1047. 删除字符串中的所有相邻重复项和844. 比较含退格的字符串)
  • PostgreSQL逻辑管理结构
  • 高匿IP有什么作用
  • Ubuntu Linux 23.10安装manimgl
  • modesim verilog仿真验证基本流程(新建工程方式)
  • SpringBoot+AOP+自定义注解,优雅实现日志记录
  • 多式联运路径优化问题:基于拓扑排序的遗传算法染色体编码
  • Go 方法集合与选择receiver类型
  • Unity AudioClip和PCM音频数据的转化
  • linux配置vlan后网络不通
  • GORM:在Go中轻松管理数据库
  • Ubuntu18.04 下PCL的卸载与安装
  • SMTP邮件发送图片-如何在github中存储图片并访问
  • 2023年软件系统架构师论文【回忆版】
  • 【使用python实现文件视频格式的转换】
  • 新媒体运营的营销方案
  • Flutter 05 组件状态、生命周期、数据传递(共享)、Key
  • 2.Vue3项目(二):vue项目创建,项目必需的基础依赖配置,项目集成各种第三方依赖
  • 【Mybatis源码】注册器 - TypeAliasRegistry
  • 【wp】2023鹏城杯初赛 Web web1(反序列化漏洞)
  • 三顾茅庐,七面阿里,成功上岸25k16薪,我行你也行~
  • 儿童听力损伤了,家长怎么办?
  • 【实验记录】为了混毕业·读读论文叭
  • asr翱捷LORA系列芯片选型参考推荐ASR6601/asr6505/asr6501/asr6500
  • Prometheus+Node_exporter+Grafana实现监控主机
  • odoo启动-加载模块(load_modules)
  • 【入门Flink】- 02Flink经典案例-WordCount
  • go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台
  • OpenGL ES入门教程(二)之绘制一个平面桌子