Java实现简单的分页功能
发布时间 - 2026-01-11 02:40:41 点击率:次本文实例为大家分享了Java实现分页功能的具体代码,供大家参考,具体内容如下

不用根据改变SQL的形式去查询;
直接查询所有的数据,根据页码自动显示数据;
分页对象
public class PageUtils implements Serializable {
/**
*
*/
private static final long serialVersionUID = -5247614532234782640L;
public final static String PAGE = "page";
public final static String PAGE_NO = "pageno";
public final static String PAGE_SIZE = "pagesize";
private long pageSize=10;//每页显示记录数
private long firstResult=0;//当页第一条记录号
private long totalCount;//总记录数
private long totalPage;//总页码
private long pageNo=1;//当前页码
private List<?> sumData;//此集合可用来保存 合计数据
private List<?> data;//查询结果
public long getPageSize() {
return pageSize;
}
public void setPageSize(long pageSize) {
this.pageSize = pageSize;
}
public long getFirstResult() {
if(pageNo>0){
firstResult=pageSize * (pageNo -1);
}else{
firstResult = 0;
}
return firstResult;
}
public long getNextPageResult(){
if(pageNo>0){
return pageSize*(pageNo-1);
}else{
return pageNo;
}
}
public void setFirstResult(long firstResult) {
this.firstResult = firstResult;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
totalPage = this.totalCount/pageSize;
if (totalPage == 0 || totalCount % pageSize != 0) {
totalPage++;
}
}
public long getTotalPage() {
return totalPage;
}
public void setTotalPage(long totalPage) {
this.totalPage = totalPage;
}
public long getPageNo() {
return pageNo;
}
public void setPageNo(long pageNo) {
this.pageNo = pageNo;
}
public List<?> getData() {
return data;
}
public void setData(List<?> data) {
this.data = data;
}
/**
* 是否第一页
*/
public boolean isFirstPage() {
return pageNo <= 1;
}
/**
* 是否最后一页
*/
public boolean isLastPage() {
return pageNo >= getTotalPage();
}
/**
* 下一页页码
*/
public long getNextPage() {
if (isLastPage()) {
return pageNo;
} else {
return pageNo + 1;
}
}
/**
* 上一页页码
*/
public long getPrePage() {
if (isFirstPage()) {
return pageNo;
} else {
return pageNo - 1;
}
}
public PageUtils(){}
public PageUtils(long pageNo){
this.pageNo=pageNo;
}
public PageUtils(long pageNo,long pageSize){
this.pageNo=pageNo;
this.pageSize = pageSize;
}
public List<?> getSumData() {
return sumData;
}
public void setSumData(List<?> sumData) {
this.sumData = sumData;
}
}
查询的数据实体
在查询的实体里添加页码和每页显示条数参数;
private int pageSize; //每页显示的条数
private int pageNo; //当前页码
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
控制层Controller
@RequestMapping("/list")
public String list(Model model,ChannelValueInfoView input) {
// input:传入的参数为对象
PageUtils page=new PageUtils();
//如果传入的当前条数为0,则赋予值(首次查询不带参);
if(input.getPageSize()==0){
//当前页码第一页
input.setPageNo(1);
//每页显示条数,当前每页显示10条数据;
input.setPageSize(10);
}
page.setPageNo(input.getPageNo());
page.setPageSize(input.getPageSize());
//核心分页代码
PageHelper p=new PageHelper();
Page<ChannelValueInfoList> l=p.startPage(input.getPageNo(),input.getPageSize());
//紧跟着的第一个select查询将会被分页
channelValueService.getChannelValueInfoViewList(input);
model.addAttribute("input", input);
page.setData(l);
page.setTotalCount(l.getTotal());
model.addAttribute("page", page);
return "index";
}
页面处理
//循环穿过来的PAGE.data数据
<tr th:each="ts : ${page.data}">
<td th:text="${ts.channelValueName}"></td>
----------
<form id="content_form" action="/channelValue/list" method="post" >
<div>
总数:<span id="totalCount" th:text="${page.totalCount}">0</span>
</div>
<ul class="pagination">
<li class="disabled">
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onFirst()">首页</a>
</li>
<li class="disabled">
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onPre()"><</a>
</li>
<li class="active">
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >
<span id="beginRow" th:text="${page.pageNo}">0</span>
</a>
</li>
<li class="disabled">
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onNext()">></a>
</li>
<li class="disabled">
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onLast()">尾页</a>
</li>
</ul>
</for m>
----------
<script>
function onFirst() {
onList(1);
}
function onPre() {
var beginRow = parseInt($('#beginRow').html());
if (beginRow - 1 > 0) {
onList(beginRow - 1);
}
}
function onNext() {
var beginRow = parseInt($('#beginRow').html());
var totalCount = parseInt($('#totalCount').html());
var pageSize = parseInt($('#pageSize').val());
if (parseInt(totalCount / pageSize + 1) > beginRow + 1) {
onList(beginRow+1);
}
}
function onLast() {
var totalCount = parseInt($('#totalCount').html());
var pageSize = parseInt($('#pageSize').val());
onList(parseInt(totalCount / pageSize + 1) - 1);
}
function onList(pageNo) {
if (pageNo == 0)
pageNo = 1;
$('#pageNo').val(pageNo);
$("#content_form").submit();
}
</script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# java
# 分页
# Java实现分页代码
# java实现分页显示效果
# 如何用java实现分页查询
# Java分页工具类及其使用(示例分享)
# java中List分页的几种方法介绍
# java分页工具类的使用方法
# java中实现分页的几种常见方式总结
# 每页
# 条数
# 第一页
# 第一个
# 首次
# 将会
# 下一页
# 上一页
# 尾页
# 不带
# 第一条
# 大家分享
# 首页
# 查询结果
# 具体内容
# 大家多多
# 数为
# 紧跟着
# lt
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Thinkphp 中 distinct 的用法解析
Laravel如何创建自定义Facades?(详细步骤)
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
教你用AI润色文章,让你的文字表达更专业
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
JavaScript如何实现路由_前端路由原理是什么
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel Session怎么存储_Laravel Session驱动配置详解
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
使用Dockerfile构建java web环境
如何在服务器上配置二级域名建站?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
微信小程序 canvas开发实例及注意事项
Android滚轮选择时间控件使用详解
如何有效防御Web建站篡改攻击?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
JS弹性运动实现方法分析
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
如何用IIS7快速搭建并优化网站站点?
如何在IIS7中新建站点?详细步骤解析
node.js报错:Cannot find module 'ejs'的解决办法
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
如何用PHP工具快速搭建高效网站?
Laravel如何使用Eloquent进行子查询
如何用低价快速搭建高质量网站?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
Laravel如何处理表单验证?(Requests代码示例)
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Python进程池调度策略_任务分发说明【指导】
Swift中循环语句中的转移语句 break 和 continue
如何快速查询网址的建站时间与历史轨迹?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
如何在阿里云ECS服务器部署织梦CMS网站?
详解Android——蓝牙技术 带你实现终端间数据传输
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
再谈Python中的字符串与字符编码(推荐)
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Laravel怎么上传文件_Laravel图片上传及存储配置
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
,网页ppt怎么弄成自己的ppt?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】

