内容较多时,可以增加首位页进行选择:

java代码块:
package testPage;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class TestPageServlet
    */
    @WebServlet("/TestPageServlet")
    public class TestPageServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public TestPageServlet() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
    •  response)
      

    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    // TODO Auto-generated method stub
    List list = new ArrayList();
    int pageNo = 85;// 当前页码
    int totalPage = 90;// 总页码
    int start = 1;// 起始页码
    int end = 1;// 结束页码
    String pageNoParam = request.getParameter(“pageNo”);
    if (pageNoParam != null) {// 如果页码参数不为空,则覆盖默认页码1
    pageNo = Integer.parseInt(pageNoParam);
    }
    String isScroll = request.getParameter(“isScroll”);
    if (isScroll == null) {
    // 假设 显示窗口为 10个页码
    if (totalPage < 10) {// 当总页码 小于等于10的时候==>全部显示
    start = 1;
    end = totalPage;
    } else if (pageNo - 5 <= 1) {// 判断当处在 起始端边界时==>输出前10个页码
    start = 1;
    end = start + 9;
    } else if (pageNo + 4 >= totalPage) {// 判断当处于 结束端 边界时==>从后向前
    // 输出后10个页码
    end = totalPage;
    start = end - 9;
    } else {
    start = pageNo - 5;
    end = pageNo + 4;
    }
    for (int i = start; i <= end; i++) {
    list.add(i);
    }

     } else if (isScroll.equals("1")) {// 向后翻一轮// 先算出 当前的 end值// 接受 参数 end 和 startString endStr = request.getParameter("end");String startStr = request.getParameter("start");if (endStr != null && !endStr.trim().equals("")) {end = Integer.parseInt(endStr);} // 将字符串类型转为int型if (startStr != null && !startStr.trim().equals("")) {start = Integer.parseInt(startStr);}if (end + 10 > totalPage) {// 如果结束码+10大于总页码==>处于最后一页//System.out.println("22222222222"+end);end = totalPage; // 结束码 就等于 总页数的页码start = totalPage - 9; // 起始码与 结束码 相差 9} else { // 相加不大于总页码 ==>不在最后一页==>可以进行一整页的 翻越//System.out.println("1111111111111"+end);start += 10;end += 10;}pageNo = (start+end)/2+1;for (int i = start; i <= end; i++) {list.add(i);}} else {// 向前翻一轮String endStr = request.getParameter("end");String startStr = request.getParameter("start");if (endStr != null && !endStr.trim().equals("")) {end = Integer.parseInt(endStr);} // 将字符串类型转为int型if (startStr != null && !startStr.trim().equals("")) {start = Integer.parseInt(startStr);}if (start - 10 <1) {//说明==>处于第一页start = 1; end = start+9; } else { //不在第一页start -= 10;end -= 10;}pageNo = (start+end)/2+1;for (int i = start; i <= end; i++) {list.add(i);}}request.setAttribute("pageList", list);request.setAttribute("curr_no", pageNo);request.setAttribute("totalPageNo", totalPage);request.setAttribute("start", start);request.setAttribute("end", end);request.getRequestDispatcher("Testpage.jsp").forward(request, response);;
    

    }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
    •  response)
      

    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    }

}

前端块(.jsp文件):
加 首 尾 的 jsp代码
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

页码测试

  • «
  •      <c:forEach items="${pageList}" var="no"><!-- 当  集合中当前页码 等于页面中的当前页码时,使用一个空函数 使当前页码 不可再点击,使当前超链接失效   "#" 空锚链接,也会刷新页面 --><c:if test="${curr_no==no}"><li class="active"><a href="javascript:void(0);">${no}</a></li></c:if><c:if test="${curr_no!= no}"><li><a href="TestPageServlet?pageNo=${no}">${no}</a></li></c:if></c:forEach><c:if test="${end != totalPageNo}"><!-- 说明还没有到达最后的页码==>可以滚动 --><li><a href="TestPageServlet?isScroll=1&start=${start}&end=${end}"aria-label="Next"> <span aria-hidden="true">&raquo;</span></a></li><li><a href="TestPageServlet?pageNo=${totalPageNo}"aria-label="Previous"> <span aria-hidden="true">尾页</span></a></li></c:if></ul>
    </nav>
    

分页的自由点击和一整页的翻越相关推荐

  1. Word文档怎么删除html标签,word怎么删除一整页的两种方法

    可以将光标定位到需要删除页面的最后,点击键盘的[Backspace]或[Delete]键来删除空白页:或者是设置为[普通视图],删除[分隔符]的方式删除空白页.以下为具体介绍: 1.可以先将光标定位到 ...

  2. html5 ocr图片识别,OCR识别控件LEADTOOLS HTML5案例:整页OCR识别

    由于移动设备的处理能力和储存空间限制,在移动设备上执行光学字符识别(OCR)一直以来都是一项较大的挑战.随着LEADTOOLS HTML5的出现,在移动设备上执行光学字符识别(OCR)变成可能.凭借L ...

  3. Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?

    Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满? 目录 Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满? 1.像 ...

  4. WORD 分页符问题-插入奇数页分页符,之前的变为下一页分页符

    论文排版-WORD 分页符问题-插入奇数页分页符,之前的变为下一页分页符 问题 解决办法 问题 论文排版时要求每张首页为右页,页码从1开始,所以每节就是从奇数页开始,所以有些章节最后需要插入下一节奇数 ...

  5. Word中表格如何均匀铺满整页

    Word中表格如何均匀铺满整页 目录 Word中表格如何均匀铺满整页 1.像这样的半页表格如何铺满整页 2.将表格最后一行框线拖至word文档底部 ​3.点击左上角"全选"图标选中 ...

  6. UICollectionView 实现整页翻动(每页3个cell)

    提示:页面架构是通过UICollectionView做的分页,分页点PageControl使用的是<SDCycleScrollView/TAPageControl.h> ,布局架构使用的是 ...

  7. 背景图像位置css_CSS背景图像大小教程–如何对整页背景图像进行编码

    背景图像位置css This tutorial will show you a simple way to code a full page background image using CSS. A ...

  8. 使用 Nginx 和 Memcached 对 WordPress 的整页做缓存

    页面加载时间已成为每一个电子商务网站的非常重要的一项指标.而 Magento 是一个资源消耗的大户,如果不使用诸如反向代理和整页缓存机制的话,其性能是非常之差.而使用 nginx + memcache ...

  9. OpenXml编程--去除自动生成的word文档中由分页符和换行符产生的空白页

    前言 前置知识:OpenXml 首先描述下问题产生的场景.我们的业务需求是根据用户的在线作答(或导入的作答结果)数据批量产生报告.产生报告的方式是把通过工作流控制的复杂业务逻辑的产出--分析结果--和 ...

最新文章

  1. linux安装完redis之后log会在,Linux安装redis logstash
  2. 施有朋:人工智能崛起,AI赋能医疗领域,创业者该如何选择
  3. JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
  4. iptables连接跟踪ip_conntrack
  5. Linux 交换文件已存在解决办法
  6. 5 thinkpad 黑将评测_王中林院士团队黑科技:80秒,将PM 2.5降至0!把森林氧吧搬回家!...
  7. 安全技术可以采用计算机安全,2017年计算机三级《信息安全技术》习题
  8. Atitti 数据库事务处理 attilax总结
  9. PhpStorm-2017.3 注册激活
  10. c3p0连接池配置连接不上mysql_数据库连接池之c3p0的配置 + 问题解决方案
  11. photoshop插画插件_照片快速转矢量插画PS动作插件 Vector Art Photoshop Action
  12. 【万人千题】结对编程排位赛(第一期) 第一周 排名公布,这也太卷了
  13. JavaScript基础系列之一 快速入门
  14. lol人物模型提取(七)
  15. python ccf题解 201409-1 相邻数对
  16. OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
  17. 在Azure上建立Ubantu虚拟机
  18. 【paper笔记】Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
  19. 类和对象有点东西(一)
  20. 大炮打蚊子 (15 分)(二维数组训练)

热门文章

  1. python decimal 转换为float_在Python中将float转换为decimal类型
  2. 对IEEE 802.15.4中Slotted CSMA-CA的理解
  3. 机器学习(概述一)——定义
  4. jython mysql_几个基础的Jython脚本示例
  5. plc 梯形图 转c语言,电路与PLC之间的梯形图转化,电气人必备技能!
  6. 巴菲特与搭档查理芒格手把手教你如何读财报,唯一一篇百看不厌炒股最实用文章
  7. Uboot中lpddr4的初始化(i.MX8M)
  8. 5.Redis数据结构介绍
  9. 【STM32F767】使用RTThread和TouchGFX实现DIY数字仪表(八)——开发微信小程序
  10. C语言1115数组最小值,C语言数组[共52页]