⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pager.java

📁 一个基于Java的新闻发布系统
💻 JAVA
字号:
/*******************************************************************************
 * 文件名: Pager.java <br>
 * 版本: <br>
 * 描述: 分页显示类 <br>
 * 版权所有: <br>
 * //////////////////////////////////////////////////////// <br>
 * 创建者: 裴蓓 <br>
 * 创建日期: 2005-9-19 <br>
 * 修改者: <br>
 * 修改日期: <br>
 * 修改说明: <br>
 ******************************************************************************/
package com.hope.common.util;

import java.util.HashMap;
import java.util.Iterator;

/**
 *
 * TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class Pager {
    //当前页
    private int currentPage;

    //总页数
    private int totalPage;

    //总记录数
    private int totalRecord;

    //一页记录数
    private int pageSize;

    //判断是否还有页数
    private int hasNext;

    //存放字符串的键值对
    private HashMap hm = new HashMap();

    //查询字符串
    private String queryString;

    //首页链接
    private String firstLink;

    //上一页链接
    private String previousLink;

    //下一页链接
    private String nextLink;

    //尾页链接
    private String lastLink;

    //toPage文本框中的链接
    private String forScriptLink;

    /**
     * 构造Pager对象,参数为pageSize一页的记录数,queryString查询字符串
     */
    public Pager(int pageSize, String queryString) {
        this.setQueryString(queryString);
        this.setPageSize(pageSize);
    }

    /**
     * 生成javascript中的链接字符串
     *
     * @return 返回 text。
     */
    public String getForScriptLink() {
        if (hm.containsKey("toPage")) {
            hm.remove("toPage");
        }
        return "?" + this.getQueryString();
    }

    /**
     * @return 返回 当前页。
     */
    public int getCurrentPage() {
        return currentPage;
    }

    /**
     * 设置当前页
     *
     * @param currentPage
     */
    public void setCurrentPage(String toPage) {
        int tmpage = 1;
        try {
            tmpage = Integer.parseInt(toPage);
        }
        catch (NumberFormatException e) {
            tmpage = 1;
        }
        if (tmpage < 1) {
            tmpage = 1;
        }
        else if (tmpage > this.getTotalPage()) {
            tmpage = this.getTotalPage();
        }
        this.currentPage = tmpage;
    }

    /**
     * @return 返回 首页的链接。
     */
    public String getFirstLink() {
        return this.getQueryStr(1);
    }

    /**
     * @return 返回 hasNext。
     */
    public int getHasNext() {
        int i = 1;
        if (this.getCurrentPage() >= this.getTotalPage()) {
            i = 0;
        }
        return i;
    }

    /**
     * @return 返回 最后一页的链接。
     */
    public String getLastLink() {
        return this.getQueryStr(this.getTotalPage());
    }

    /**
     * @return 返回 nextLink。
     */
    public String getNextLink() {
        return this.getQueryStr(this.currentPage + 1);
    }

    /**
     * @return 返回 pageSize。
     */
    public int getPageSize() {
        return pageSize;
    }

    /**
     * @param pageSize
     *            要设置的 pageSize。
     */
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * @return 返回 previousLink。
     */
    public String getPreviousLink() {
        return this.getQueryStr(this.currentPage - 1);
    }

    /**
     * @param previousLink
     *            要设置的 previousLink。
     */
    public void setPreviousLink(String previousLink) {
        this.previousLink = previousLink;
    }

    /**
     * 组合查询字符串
     *
     * @return 返回 queryString。
     */
    public String getQueryString() {
        StringBuffer sb = new StringBuffer();
        Iterator i = hm.keySet().iterator();
        while (i.hasNext()) {
            String key = (String) i.next();
            String value = (String) hm.get(key);
            sb.append("&");
            sb.append(key);
            sb.append("=");
            sb.append(value);
        }
        return sb.delete(0, 1).toString();
    }

    /**
     * 解析传入的查询字符串
     *
     * @param queryString
     */
    public void setQueryString(String queryString) {
        if (queryString != null) {
            String[] s = queryString.split("&");
            for (int i = 0; i < s.length; i++) {
                String[] s1 = s[i].split("=");
                hm.put(s1[0], s1[1]);
            }
        }
    }

    /**
     * @return 返回 totalPage。
     */
    public int getTotalPage() {
        return totalPage;
    }

    /**
     * @param totalPage
     *            要设置的 totalPage。
     */
    public void setTotalPage() {
        if (this.totalRecord % this.pageSize == 0) {
            this.totalPage = this.totalRecord / this.pageSize;
        }
        else {
            this.totalPage = this.totalRecord / this.pageSize + 1;
        }
    }

    /**
     * @return 返回 totalRecord。
     */
    public int getTotalRecord() {
        return totalRecord;
    }

    /**
     * @param totalRecord
     *            要设置的 totalRecord。
     */
    public void setTotalRecord(int totalRecord) {
        this.totalRecord = totalRecord;
    }

    /**
     *
     * @param key
     * @return
     */
    public String getQueryParameter(String key) {
        String value = "";
        if (key != "toPage") {
            value = (String) hm.get(key);
        }
        else {
            int tmpage = 1;
            try {
                value = (String) hm.get(key);
                tmpage = Integer.parseInt(value);
            }
            catch (NumberFormatException e) {
                tmpage = 1;
            }
            catch (NullPointerException e1) {
                tmpage = 1;
            }
            if (tmpage < 1) {
                tmpage = 1;
            }
            else if (tmpage > this.getTotalPage()) {
                tmpage = this.getTotalPage();
            }
            value = tmpage + "";
        }
        return value;
    }

    /**
     * 设置参数值
     *
     * @param key
     * @param value
     */
    public void setQueryParameter(String key, String value) {
        hm.put(key, value);
    }

    /**
     *
     * @param toPage
     * @return String
     */
    public String getQueryStr(int toPage) {
        this.setQueryParameter("toPage", toPage + "");
        return "?" + this.getQueryString();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -