ホームページ >Java >&#&チュートリアル >Java の実践的な HTML ページング設計

Java の実践的な HTML ページング設計

无忌哥哥
无忌哥哥オリジナル
2018-07-20 11:26:133092ブラウズ

ページデザイン原則

対応するページ番号に必要なデータは毎回jspまたはhtmlファイルに表示する必要があるため、これらのデータはjavabean

にカプセル化する必要があり、バックグラウンドはそれをクエリします。データを対応する Javabean オブジェクト インスタンスに格納し、リクエスト スコープ、HTML または JSP ページにオブジェクトを格納します

ドメインから必要なデータを取得します

LepPage クラスを作成します

import java.util.List;

public class LepPage<T> {

    /**
     * 如果指定的分页大小小于等于0,则义默认分页为20条数据
     */
    public static final int DEFAULT_ROW_SIZE = 20;

    /**
     * 如果指定的分页页码小于等于0,则默认为第一页。
     */
    public static final int DEFAULT_PAGE_NUM = 1;

    private int pageNo=DEFAULT_PAGE_NUM; // 当前页码
    private int pageSize=DEFAULT_ROW_SIZE; // 页面大小
    private int totalCount=-1; // 总记录数
    private int totalPage=-1; // 总页数
    private int startIndex; // 分页开始位置
    private int endIndex; // 分页结束位置
    private List<T> results; // 返回的结果集

    /*
     * 是否手动设置过总记录数<br/>
     * 如果手动设置过,则不自动去计算数据总数。否则,将对SQL语句包装成COUNT语句去查询总记录数
     */
    private boolean alreadySetTotolRecode = false;

    /*
     * 计算总页数
     */
    private void calculateTotalPage() {
        this.alreadySetTotolRecode = true;

        if ( this.totalCount < 0 ) {
            this.totalCount = 0;
        }

        if ( this.totalCount % this.pageSize == 0 ) {
            this.totalPage = this.totalCount / this.pageSize;
        } else {
            this.totalPage = this.totalCount / this.pageSize + 1;
        }
    }

    /**
     * 该方法不推荐使用,使用{@code Page(int PageNo, int pageSize)}进行替换
     */
    public LepPage() {
        super();
    }

    private void calculatorPageNo() {
        this.startIndex = pageNo > 0 ? ((pageNo - 1) * pageSize) : 0;
        this.endIndex = pageNo * pageSize;
    }

    /**
     * 构造一个Page对象
     * @param pageNo 当前页码
     * @param pageSize 页面大小
     */
    public LepPage(int pageNo, int pageSize) {
        this.pageNo = pageNo;
        this.pageSize = pageSize;
        calculatorPageNo();
    }

    public int getPageNo() {
        return pageNo;
    }

    public void setPageNo(int PageNo) {
        if ( PageNo <= 0 ) {
            this.pageNo = DEFAULT_PAGE_NUM;
        }
        this.pageNo = PageNo;
        calculatorPageNo();
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        if ( pageSize <= 0 ) {
            this.pageSize = DEFAULT_ROW_SIZE;
        }
        this.pageSize = pageSize;
        calculatorPageNo();
    }

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;

        // 去计算总页数
        calculateTotalPage();
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public int getStartIndex() {
        return startIndex;
    }

    public void setStartIndex(int startIndex) {
        this.startIndex = startIndex;
    }

    public int getEndIndex() {
        return endIndex;
    }

    public void setEndIndex(int endIndex) {
        this.endIndex = endIndex;
    }

    public List<T> getResults() {
        return results;
    }

    public void setResults(List<T> results) {
        this.results = results;
    }

    public boolean isAlreadySetTotolRecode() {
        return alreadySetTotolRecode;
    }

    public void setAlreadySetTotolRecode(boolean alreadySetTotolRecode) {
        this.alreadySetTotolRecode = alreadySetTotolRecode;
    }

    @Override
    public String toString() {
        return "Page{" +
                "pageNo=" + pageNo +
                ", pageSize=" + pageSize +
                ", totalCount=" + totalCount +
                ", totalPage=" + totalPage +
                ", startIndex=" + startIndex +
                ", endIndex=" + endIndex +
                ", results=" + results +
                ", alreadySetTotolRecode=" + alreadySetTotolRecode +
                &#39;}&#39;;
    }
}

サービス層にビジネス ロジック コードを記述します

Java の実践的な HTML ページング設計

Java の実践的な HTML ページング設計

対応するページングオブジェクトをJsonオブジェクトに追加し、フロントエンドに返します

Java の実践的な HTML ページング設計

以上がJava の実践的な HTML ページング設計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。