Java 之MVC动态分页完美实现
一个分页小技术有时也是让人挠头,在这里完全前端实现方式与Java的实现方式,我们提供给你完全的编码参考,希望能够帮到你哦(:)

- 内容导读
1.程序结构
2.JSP页面设计
3.分页主要编码
4.运行效果图
说明:
(1)开发工具为MyEclipse或Eclipse;运行程序需要创建库文件及相应的表,请参照源码设计;启动tomcat运行程序实现动态分页效果
(2)加QQ群:657540173免费下载源码
一.程序结构
项目虽小,也是三层架构设计哦!!!

二.JSP页面设计
1.index.jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>信息管理系统</title>
<link rel="stylesheet" type="text/css" href="css/index.css"
rel="external nofollow">
</head>
<body>
<h2>信息分页查询</h2>
<!-- align="right" -->
<div class="wrap">
<table class="tab" border="2">
<tr>
<th>学号</th>
<th>姓名</th>
<th>成绩</th>
</tr>
<c:forEach items="${pg.list}" var="stu">
<tr>
<td><c:out value="${stu.sid}" /></td>
<td><c:out value="${stu.sname}" /></td>
<td><c:out value="${stu.score}" /></td>
</tr>
</c:forEach>
</table>
</div>
<!-- 按钮样式 -->
<div class="set">
第<span id="currentPage">${pg.currentPage}</span>页 共<span
id="totalPage"> ${pg.totalPage} </span>页 <a
href="index?currentPage=${0}">首页</a> <a
href="index?currentPage=${pg.currentPage-1}">上一页</a> <a
href="index?currentPage=${pg.currentPage+1}">下一页</a> <a
href="index?currentPage=${pg.totalPage}">尾页</a>转到第:<input id="jump"
type="text" />页 <input id="go" type="button" value="GO" />
</div>
</body>
<script type="text/javascript" src="js/index.js"></script>
</html>
2.play.jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>信息查询系统</title>
</head>
<body>
<jsp:forward page="index"></jsp:forward>
</body>
</html>
三.分页主要编码
import java.util.List;
/**
* @ClassName: Pagination
* @Description: TODO()
* @author 超客学堂chaoke.ke.qq.com
* @date 2019年2月18日 下午5:20:30
* @version V1.0
*/
public class Pagination<T> {// 使用泛型是为了复用
// 当前页号
private int currentPage;
// 总页号或总页数
private int totalPage;
// 每页记录数或行数
private int limitRows;
// 总的记录数或行数
private int totalRows;
// 每页开始的记录号
private int startRecord;
// 每页结束的记录号,这个没用,只需每页记录行数limitRows即可
// //private int endRecord;
// 存每页中的记录
private List<T> list;
// //初始化操作
public void init() {
// //1.求总页数,通过总记录数与每页行数来计算,有几种情况
// (1)不够一页(2)有零头(3)刚好是整数页
int tp = totalRows / limitRows;
if (totalRows > limitRows) {
totalPage = (totalRows % limitRows) == 0 ? tp : tp + 1;
} else {
totalPage = 1;
}
// //2.将当页保留在第一页或最后一页
if (currentPage > totalPage) {
currentPage = totalPage;
} else if (currentPage < 1) {
currentPage = 1;
}
// //3.初始化开始记录数,mysql应用的limit它不包括开始记录,所以不要加1;
// 还有limit传入的是开始记录号与查询的条数,此处是每页可显示数limitRows,
// 如果查到最后没有limitRows限制的行数,则显示剩余部分
this.startRecord = (currentPage - 1) * limitRows;
}
// /无参构造,便于使用
public Pagination() { }
// ///当前页号,总记录数,每页行数;这些属性需要传入后初始化,其它的可以set设置
public Pagination(int currentPage, int totalRows, int limitRows) {
this.currentPage = currentPage;
this.totalRows = totalRows;
this.limitRows = limitRows;
}
// ///////get与set方法///////////
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getLimitRows() {
return limitRows;
}
public void setLimitRows(int limitRows) {
this.limitRows = limitRows;
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getStartRecord() {
return startRecord;
}
public void setStartRecord(int startRecord) {
this.startRecord = startRecord;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
四.运行效果图



Java 之MVC动态分页完美实现的更多相关文章
- Java 动态分页类
动态分页类: Cls_page.java package pagination; public class Cls_page { private int nums;// 总条目数 private i ...
- pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页
java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...
- 支持Java Spring MVC
Java Spring MVC能很方便在后台返回JSON数据,所以与MiniUI进行数据交互非常简单. 1)后台处理: 在MVC控制器中,可以通过方法参数接收数据,也可以通过Request接收更复杂的 ...
- java中的动态代理
1.动态代理的定义:为其他对象提供一个代理以控制对这个对象的访问 2.通过api看下proxy生成代理类的2中写法: 创建某一接口 Foo 的代理: InvocationHandler handler ...
- Masonry+Infinite-Scroll实现无刷新无分页完美瀑布流(转)
一.Masonry 是基于Jquery插件,用于对CSS布局的可移动层进行重新布局.Masonry愿意石工,可以这样形象的理解,页面上很多大小不一的移动层可以想象成散乱的石头,经过Masonry这个石 ...
- Java—SSH(MVC)
Java-SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是 ...
- 轻量级Java持久化框架,Hibernate完美助手,Minidao 1.6.2版本发布
Minidao 1.6.2 版本发布,轻量级Java持久化框架(Hibernate完美助手) Minidao产生初衷? 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL,hiber ...
- 杨晓峰-Java核心技术-6 动态代理 反射 MD
目录 第6讲 | 动态代理是基于什么原理? 典型回答 考点分析 知识扩展 反射机制及其演进 动态代理 精选留言 Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAnd ...
- asp.net MVC通用分页组件 使用方便 通用性强
asp.net MVC通用分页组件 使用方便 通用性强 该分页控件的显示逻辑: 1 当前页面反色突出显示,链接不可点击 2 第一页时首页链接不可点击 3 最后一页时尾页链接不可点击 4 当前页面左 ...
随机推荐
- python trojan development 3rd —— use python to creative a simple shell
前两篇文章的木马太被动,今天是通过socket和os来进行主动木马编写 有些s13,我真的搞不懂拿一些没过脑子的代码就放到网上去害人,骗流量,还某知名安全企业学院写的,真的服.我的代码自己运行过,很稳 ...
- JVM(七):JVM内存结构
JVM(七):JVM内存结构 在前几节的文章我们多次讲到 Class 对象需要分配入 JVM 内存,并在 JVM 内存中执行 Java 代码,完成对象内存的分配.执行.回收等操作,因此,如今让我们来走 ...
- 原子操作CAS-最小的线程安全
原文连接:(http://www.studyshare.cn/blog-front/blog/details/1166/0 )一.原子操作是什么? 如果有两个线程分别执行两个操作A和B,从第一个线程执 ...
- Spring Boot:使用Rabbit MQ消息队列
综合概述 消息队列 消息队列就是一个消息的链表,可以把消息看作一个记录,具有特定的格式以及特定的优先级.对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息,对消息队列有读权限的进程则可以 ...
- 使用redis PSUBSCRIBE实现实时任务
PSUBSCRIBE可以监听键的过期事件 1.进行数据库的配置 notify-keyspace-events Ex 2.使用命令监听事件 psubscribe __keyevnet@0__:expi ...
- bitmap-如何判断某个整数是否存在40亿个整数中?
有这样一道面试题:现有40亿个整数,如果再给定一个新的整数,怎么判断这个整数是否在这40亿个整数中? 你可能首先会想到用一个set存储,那个新数只需判断是否在set中.但是如果用set存储的话,如果一 ...
- eclipse的安装与使用方法
eclipse的安装与使用方法: eclipse是Java编程利器,工欲善其事必先利其器.下面我们来说说eclipse的安装与使用: 安装分三步: 第一步:安装eclipse 1.官网下载eclips ...
- 手动安装gitlab-runner
手动安装gitlab-runner 在终端使用命令curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runn ...
- Codeforces 777C:Alyona and Spreadsheet(思维)
http://codeforces.com/problemset/problem/777/C 题意:给一个矩阵,对于每一列定义一个子序列使得mp[i][j] >= mp[i-1][j],即如果满 ...
- 小代学Spring Boot之开篇
想要获取更多文章可以访问我的博客 - 代码无止境. 前情提要 小代是一名入职不久的程序员,公司同事都亲切的称他小代.有一天小代的老大陈BOSS和小代说,公司后端最近准备换技术框架了. 小代: 换成啥? ...