1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | public class PageHtml<T> { public Map showPageHtml(Integer currentPage, Integer pageSize, Integer count) { //计算总页数 int st = 0, ed = 0, all_pager = 0; int page_merchant = count / pageSize; int page_remainder = count % pageSize; if (page_remainder > 0) { all_pager = page_merchant + 1; } else { all_pager = page_merchant; } Map<String, Object> map = new HashMap<String, Object>(); if (all_pager < 5) { st = 1; ed = all_pager + 1; //5 + 1; } else { if (currentPage < 3) { st = 1; //最多显示5个页码 ed = 5 + 1; } else { if (currentPage + 2 < all_pager) { st = currentPage - 2; ed = currentPage + 2 + 1; } else { st = all_pager - 5 + 1; ed = all_pager + 1; } } } StringBuilder sb = new StringBuilder(); sb.append( "<nav aria-label=\"Page navigation\">" ); sb.append( "<ul class=\"pagination\">" ); sb.append( "<li>" ); sb.append( "<a aria-label=\"Previous\" onclick=\"prevPage()\">" ); sb.append( "<span aria-hidden=\"true\">«</span>" ); sb.append( "</a>" ); sb.append( "</li>" ); sb.append( "<li><a onclick=\"firstPage()\">首页</a></li>" ); for ( int i = st; i < ed; i++) { if (i == currentPage) { sb.append( "<li class=\"active\" id=\"selected\"><a onclick=\"pageIndex(" + i + ")\">" + i + "</a></li>" ); } else { sb.append( "<li><a onclick=\"pageIndex(" + i + ")\">" + i + "</a></li>" ); } } sb.append( "<li><a onclick=\"lastPage()\">尾页</a></li>" ); sb.append( "<li>" ); sb.append( "<a aria-label=\"Next\" onclick=\"nextPage()\">" ); sb.append( "<span aria-hidden=\"true\">»</span>" ); sb.append( "</a>" ); sb.append( "</li>" ); sb.append( "</ul>" ); sb.append( "</nav>" ); String html = sb.toString(); map.put( "conut" , count); map.put( "html" , html); map.put( "pageTotal" , all_pager); return map; } } |
参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现