一个分页小技术有时也是让人挠头,在这里完全前端实现方式与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动态分页完美实现的更多相关文章

  1. Java 动态分页类

     动态分页类: Cls_page.java package pagination; public class Cls_page { private int nums;// 总条目数 private i ...

  2. pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页

    java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...

  3. 支持Java Spring MVC

    Java Spring MVC能很方便在后台返回JSON数据,所以与MiniUI进行数据交互非常简单. 1)后台处理: 在MVC控制器中,可以通过方法参数接收数据,也可以通过Request接收更复杂的 ...

  4. java中的动态代理

    1.动态代理的定义:为其他对象提供一个代理以控制对这个对象的访问 2.通过api看下proxy生成代理类的2中写法: 创建某一接口 Foo 的代理: InvocationHandler handler ...

  5. Masonry+Infinite-Scroll实现无刷新无分页完美瀑布流(转)

    一.Masonry 是基于Jquery插件,用于对CSS布局的可移动层进行重新布局.Masonry愿意石工,可以这样形象的理解,页面上很多大小不一的移动层可以想象成散乱的石头,经过Masonry这个石 ...

  6. Java—SSH(MVC)

    Java-SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是 ...

  7. 轻量级Java持久化框架,Hibernate完美助手,Minidao 1.6.2版本发布

    Minidao 1.6.2 版本发布,轻量级Java持久化框架(Hibernate完美助手) Minidao产生初衷? 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL,hiber ...

  8. 杨晓峰-Java核心技术-6 动态代理 反射 MD

    目录 第6讲 | 动态代理是基于什么原理? 典型回答 考点分析 知识扩展 反射机制及其演进 动态代理 精选留言 Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAnd ...

  9. asp.net MVC通用分页组件 使用方便 通用性强

    asp.net MVC通用分页组件 使用方便 通用性强   该分页控件的显示逻辑: 1 当前页面反色突出显示,链接不可点击 2 第一页时首页链接不可点击 3 最后一页时尾页链接不可点击 4 当前页面左 ...

随机推荐

  1. .NET CORE与Spring Boot编写控制台程序应有的优雅姿势

    本文分别说明.NET CORE与Spring Boot 编写控制台程序应有的“正确”方法,以便.NET程序员.JAVA程序员可以相互学习与加深了解,注意本文只介绍用法,不会刻意强调哪种语言或哪种框架写 ...

  2. solr 重要的知识点

    1 solr 查询参数说明 常用 ) q - 查询字符串,必须的. ) fl - 指定返回那些字段内容,用逗号或空格分隔多个. ) start - 返回第一条记录在完整找到结果中的偏移位置, 开始,一 ...

  3. 了解selenium--(虫师的博客)

    Selenium is a portable software-testing framework for web applications. Selenium is composed of seve ...

  4. 第一个SpringBoot

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我 ...

  5. css实现超出文本溢出用省略号代替

    一.单行 实现单行文本的溢出显示省略号使用text-overflow:ellipsis属性,但需要配合使用另外两个属性使用才能达到效果. 如下: overflow:hidden; text-overf ...

  6. Intent对象(组件间的通信原理)

    Intent对象是一种可以在运行时动态绑定组件的关键技术,通过使用Intent对象,可以告诉系统你想要实现什么样的操作,也就是Intent对象里面包含的请求内容,请求再由Android操作系统接收到, ...

  7. C++学习书籍推荐《Exceptional C++》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <Exceptional C++:47个C++工程难题.编程问题和解决方案(中文版)>中的每个问题都给出了难度系数,在这些问题中阐释一些微妙的编程 ...

  8. 安卓学习资料推荐《深入理解Android:卷2》下载

    下载地址:百度云下载地址 编辑推荐 <深入理解Android:卷2>编辑推荐:经典畅销书<深入理解Android:卷I>姊妹篇,51CTO移动开发频道和开源中国社区一致鼎力推荐 ...

  9. getpass.getpass 无法在pycharm上run显示的 workaround

    getpass.getpass 只能通过交互式终端运行.py文件来密文输入密码,想在pycharm里运行,好不容易找到一个小窍门,记录如下 from easygui import passwordbo ...

  10. 通俗易懂 悲观锁、乐观锁、可重入锁、自旋锁、偏向锁、轻量/重量级锁、读写锁、各种锁及其Java实现!

    网上关于Java中锁的话题可以说资料相当丰富,但相关内容总感觉是一大串术语的罗列,让人云里雾里,读完就忘.本文希望能为Java新人做一篇通俗易懂的整合,旨在消除对各种各样锁的术语的恐惧感,对每种锁的底 ...