分页复用代码【Page类、JSP显示页面】

摘要:
前言记录了一些以前编写的工具类和方法页类importjava.util。重复使用列表/***Createdbyozcon2017/3/1.*/publicclassPage;
前言

为了复用,记载一些以前写过的工具类、方法

page类


    import java.util.List;

    /**
     * Created by ozc on 2017/3/1.
     */
    public class Page {

        //保存着分页的数据
        private List<Customer> list;

        //总记录数
        private long totalRecord;

        //每页显示记录数,这里我规定每页显示3条
        private int linesize = 3;

        //总页数
        private int totalPageCount;

        //当前显示的页数
        private int currentPageCount;

        //开始取的记录位置
        private int startIndex;

        //记录JSP页面开始的页数和结束的页数
        private int startPage;
        private int endPage;

        private String url;


        public Page() {
        }

        public Page(int currentPageCount, long totalRecord) {


            //将传递进来的currentPageCount初始化
            this.currentPageCount = currentPageCount;

            //总页数
            totalPageCount = (int) (totalRecord % linesize == 0 ? totalRecord / linesize : totalRecord / linesize + 1);

            this.totalRecord = totalRecord;

            //开始取数据的位置
            startIndex = (currentPageCount - 1) * linesize;


            //如果当前页小于10,那么开始页为1,结束页为10就行了
            if (this.currentPageCount <= 10) {
                this.startPage = 1;
                this.endPage = 10;
            } else {
                this.startPage = this.currentPageCount - 4;
                this.endPage = this.currentPageCount + 5;

                //加减后页数越界的情况
                if (startPage < 1) {
                    this.startPage = 1;
                    this.endPage = 10;
                }
                if (endPage > totalPageCount) {
                    this.startPage = this.currentPageCount - 9;
                    this.endPage = this.totalPageCount;
                }
            }

        }
        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }
        public int getStartIndex() {
            return startIndex;
        }
        public void setCurrentPageCount(int currentPageCount) {
            this.currentPageCount = currentPageCount;
        }
        public void setStartIndex(int startIndex) {
            this.startIndex = startIndex;
        }

        public int getStartPage() {
            return startPage;
        }

        public void setStartPage(int startPage) {
            this.startPage = startPage;
        }

        public int getEndPage() {
            return endPage;
        }

        public void setEndPage(int endPage) {
            this.endPage = endPage;
        }

        public int getTotalPageCount() {
            return totalPageCount;
        }

        public void setTotalPageCount(int totalPageCount) {
            this.totalPageCount = totalPageCount;
        }

        public List<Customer> getList() {
            return list;
        }

        public void setList(List<Customer> list) {
            this.list = list;
        }

        public long getTotalRecord() {
            return totalRecord;
        }

        public void setTotalRecord(long totalRecord) {
            this.totalRecord = totalRecord;
        }

        public int getLinesize() {
            return linesize;
        }

        public void setLinesize(int linesize) {
            this.linesize = linesize;
        }


        public long getCurrentPageCount() {
            return currentPageCount;
        }

        public void setCurrentPageCount(long currentPageCount) {
            this.currentPageCount = (int) currentPageCount;
        }
    }
显示页面JSP
<%--
  Created by IntelliJ IDEA.
  User: ozc
  Date: 2017/3/1
  Time: 21:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--显示当前页数--%>
当前页数是:[${page.currentPageCount}]&nbsp;&nbsp;&nbsp;

<%--如果当前的页码大于1,才显示上一步--%>
<c:if test="${page.currentPageCount>1}">

    <%--把传递过去的页码-1就行了--%>
    <a href="${page.url}?currentPageCount=${page.currentPageCount-1}">
        上一步
    </a>
</c:if>


<%--提供页数的界面--%>
<c:forEach var="pageNum" begin="${page.startPage}" end="${page.endPage}">
    <a href="${page.url}?currentPageCount=${pageNum}">
        [${pageNum}]&nbsp;
    </a>
</c:forEach>

<%--如果当前的页码小于总页数,才显示下一步--%>
<c:if test="${page.currentPageCount<page.totalPageCount}">

    <%--把传递过去的页码-1就行了--%>
    <a href="${page.url}?currentPageCount=${page.currentPageCount+1}">
        下一步
    </a>&nbsp;&nbsp;
</c:if>

<input type="text" id="currentPageCount">
<input type="button" value="跳转" onclick="goPage()">

总页数是:${page.totalPageCount}&nbsp;&nbsp;

总记录数是:${page.totalRecord}


<script type="text/javascript">

    /*既然写上了JavaScript代码了,就顺便验证输入框输入的数据是否合法吧*/
    function goPage() {

        /*获取输入框控件*/
        var input = document.getElementById("currentPageCount");

        /*获取输入框的数据*/
        var value = input.value;

        if(value==null || value==""){
            alert("请输入页码");
            return false;
        }

        if(!value.match("\d+")){
            alert("请输入数字");
            return false;
        }

        if(value<1 || value>${page.totalPageCount}){
            alert("请输入合法数据");
            return false ;
        }

        window.location.href="${page.url}?currentPageCount="+value;
    }

</script>

免责声明:文章转载自《分页复用代码【Page类、JSP显示页面】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_closeThinkphp6笔记十四:Redis配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

嵌入式web服务

:boa、thttpd、mini_httpd、shttpd、lighttpd、goaheand、appweb和apache等。 Boa 1.介绍 Boa诞生于1991年,作者Paul Philips。是开源的,应用很广泛,特别适合于嵌入式设备,网上流行程度很广。它的官方网站说boa是最受人喜爱的嵌入式web服务器。功能较为强大,支持认证,cgi等。B...

web 阶段的一些简答题

1.jsp 9个隐含对象 2. jsp 4大域对象 3.mybatis 中 #{} %{ } 的区别于联系 4. Servlet容器默认是采用单实例多线程的方式处理多个请求的: 5.Cookie 与Session 的异同 6. 请描述对web 服务器的理解(Tomcat),请列举出tomcat7下的目录以及各个目录的作用 7. 请描述 servlet与st...

reponse.getWriter和JSP中的out.printe的区别;

两者的主要区别:1.内置对象out的类型是JspWriter;response.getWrite()返回的类型是PrintWriter;out和response.getWriter的类不一样,一个是JspWriter,另一个是java.io.PrintWriter。 2. 获取方式不同:JspWriter是JSP的内置对象,直接使用即可,对象名out是保...

Javaweb学习笔记--分层设计

在早期的JavaWeb应用中,JSP文件负责处理业务逻辑,控制网页流程并创建HTML页面,JSP文件是一个独立的,能自主完成所有任务的模块, 这带来了一系列问题:HTML代码和Java程序代码强耦合在一起内嵌的流程控制逻辑调试困难可维护性差可读性差 为了解决以上问题,SUN公司先后制定了两种设计模式:jspmodel1以及jspmodel2 本质区别:在于...

Jsp的九大对象,七大动作,三大指令

jsp九大内置对象:1>out 向客户端输出数据,字节流.如out.print(" dgaweyr"); 2>request 接收客户端的http请求.String getParameter(String name):得到表单参数名name的值.String[] getParameterValues(String name):(得到String...

JSP不支持EL表达式的解决方案

EL的全称是Expression Language。 1.在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JSP 2.0支持。 servlets 2.4这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明...