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

📄 navigatortag.java

📁 一个好的分页
💻 JAVA
字号:
package net.xdevelop.taglib.page;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.net.URLEncoder;
import java.io.IOException;
import net.xdevelop.util.*;

/**
 * 显示导航条,可利用此改变每页的记录数,上下翻页和跳页
 * 使用方法:<page:navigator type='BUTTON'/>
 * @author Starboy
 * @version 2.0
 */
public class NavigatorTag extends TagSupport {
    /**导航条的类型(BUTTON/TEXT)(按钮型/文字链接型)*/
    private String type = "BUTTON"; //选择导航条类型默认"BUTTON"(BUTTON/TEXT)

    public void setType(String newType) {
        type = newType;
    }

    public int doStartTag() throws JspException {
        try {
            String bar = getNavigatorBar(type);
            pageContext.getOut().write(bar);
            return SKIP_BODY;
        }
        catch (IOException ioe) {
            throw new JspException(ioe.getMessage());
        }
    }

    public int doEndTag() throws JspException {

        return EVAL_PAGE;

    }

    /**
     * 根据指定类型获得导航条预先设计的导航条
     * @param type 导航条类型(BUTTON/TEXT)
     * @return 返回导航条的HTML代码,若指定类型不存在,返回""
     */
    private String getNavigatorBar(String type) {
        String bar = "";
        String pageNo   = ((Integer) pageContext.getAttribute("pageNo")).toString();
        String pages    = ((Integer) pageContext.getAttribute("pages")).toString();
        String total    = ((Integer) pageContext.getAttribute("total")).toString();
        String pageSize = ((Integer) pageContext.getAttribute("pageSize")).toString();
        String nextDisabled = "";
        String prevDisabled = "";
        if (Integer.parseInt(pageNo) >= Integer.parseInt(pages))
            nextDisabled = "disabled";
        if (Integer.parseInt(pageNo) <= 1)
            prevDisabled = "disabled";

        //---------------------按钮型的导航条-----------------------//
        if (type.equalsIgnoreCase("BUTTON")) {
            String pageSizeInput = "<input type='text' size='2' value='" + pageSize + "' "
                                   + "onChange=\"javascript:this.form.choice.value='current';"
                                   + "this.form.pageSize.value=this.value;this.form.submit();\">";
            String firstButton = "<input type='button' value='首  页' " + prevDisabled + " "
                                 +
                    "onClick=\"javascript:this.form.choice.value='first';this.form.submit();\">";
            String prevButton = "<input type='button' value='上一页' " + prevDisabled + " "
                                +
                    "onClick=\"javascript:this.form.choice.value='prev';this.form.submit();\">";
            String nextButton = "<input type='button' value='下一页' " + nextDisabled + " "
                                +
                    "onClick=\"javascript:this.form.choice.value='next';this.form.submit();\">";
            String lastButton = "<input type='button' value='最后一页' " + nextDisabled + " "
                                +
                    "onClick=\"javascript:this.form.choice.value='last';this.form.submit();\">";
            String pageNoInput = "<input type='text' size='3' value='" + pageNo + "' "
                                 + "onChange=\"javascript:this.form.pageNo.value=this.value\">";

            bar = "每页pageSize条记录 | \n"
                  + "共pages页/total条记录 | \n"
                  + "first \n prev \n next \n last \n | 第pageNo页\n"
                  +
                    " <input type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";

            bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
            bar = StringUtil.replace(bar, "pages", pages);
            bar = StringUtil.replace(bar, "total", total);
            bar = StringUtil.replace(bar, "first", firstButton);
            bar = StringUtil.replace(bar, "prev", prevButton);
            bar = StringUtil.replace(bar, "next", nextButton);
            bar = StringUtil.replace(bar, "last", lastButton);
            bar = StringUtil.replace(bar, "pageNo", pageNoInput);
        } /////end of if(button)

        //-------------------------文字型----------------------------//
        if (type.equalsIgnoreCase("TEXT")) {
            String pageSizeInput = "<input type='text' size='2' value='" + pageSize + "' "
                                   + "onChange=\"document.pager.choice.value='current';"
                                   + "this.form.pageSize.value=this.value;this.form.submit();\">";
            String firstText = "首  页";
            String prevText = "上一页";
            String nextText = "下一页";
            String lastText = "最后一页";
            if (prevDisabled.equalsIgnoreCase("")) {
                firstText = "<a href='first' "
                            +
                        "onClick=\"javascript:document.pager.choice.value='first';document.pager.submit();return false;\">"
                            + "首  页"
                            + "</a>";
                prevText = "<a href='prev' "
                           +
                        "onClick=\"javascript:document.pager.choice.value='prev';document.pager.submit();return false;\">"
                           + "上一页"
                           + "</a>";
            }
            if (nextDisabled.equalsIgnoreCase("")) {
                nextText = "<a href='next' "
                           +
                        "onClick=\"javascript:document.pager.choice.value='next';document.pager.submit();return false;\">"
                           + "下一页"
                           + "</a>";
                lastText = "<a href='last' "
                           +
                        "onClick=\"javascript:document.pager.choice.value='last';document.pager.submit();return false;\">"
                           + "最后一页"
                           + "</a>";
            }
            String pageNoInput = "<input type='text' size='3' size='2' value='" + pageNo + "' "
                                 + "onChange=\"javascript:this.form.pageNo.value=this.value\">";

            bar = "每页pageSize条记录 | \n"
                  + "共pages页/total条记录 | \n"
                  + "first \n prev \n next \n last \n | 第pageNo页\n"
                  +
                    " <input type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";

            bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
            bar = StringUtil.replace(bar, "pages", pages);
            bar = StringUtil.replace(bar, "total", total);
            bar = StringUtil.replace(bar, "first", firstText);
            bar = StringUtil.replace(bar, "prev", prevText);
            bar = StringUtil.replace(bar, "next", nextText);
            bar = StringUtil.replace(bar, "last", lastText);
            bar = StringUtil.replace(bar, "pageNo", pageNoInput);
        } /////end of if(text)

        //---------------------按钮型的导航条-----------------------//
        if (type.equalsIgnoreCase("SIMPLEBUTTON")) {
            String pageSizeInput = "<input class='navbar' type='text' size='1' value='" + pageSize +
                                   "' "
                                   + "onChange=\"javascript:this.form.choice.value='current';"
                                   + "this.form.pageSize.value=this.value;this.form.submit();\">";
            String prevButton = "<input class='navbar' type='button' value='上一页' " + prevDisabled +
                                " "
                                +
                    "onClick=\"javascript:this.form.choice.value='prev';this.form.submit();\">";
            String nextButton = "<input class='navbar' type='button' value='下一页' " + nextDisabled +
                                " "
                                +
                    "onClick=\"javascript:this.form.choice.value='next';this.form.submit();\">";
            String pageNoInput = "<input class='navbar' type='text' size='1' value='" + pageNo +
                                 "' "
                                 + "onChange=\"javascript:this.form.pageNo.value=this.value\">";

            bar = "每页pageSize条记录 | \n"
                  + "共pages页/total条记录 | \n"
                  + "\n prev \n next \n | 第pageNo页\n"
                  + " <input class='navbar' type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";

            bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
            bar = StringUtil.replace(bar, "pages", pages);
            bar = StringUtil.replace(bar, "total", total);
            bar = StringUtil.replace(bar, "prev", prevButton);
            bar = StringUtil.replace(bar, "next", nextButton);
            bar = StringUtil.replace(bar, "pageNo", pageNoInput);
        } /////end of if(button)

        //-------------------------文字型----------------------------//
        if (type.equalsIgnoreCase("SIMPLETEXT")) {
            String pageSizeInput = "<input type='text' size='1' value='" + pageSize + "' "
                                   + "onChange=\"javascript:document.pager.choice.value='current';"
                                   + "this.form.pageSize.value=this.value;this.form.submit();\">";
            String firstText = "首  页";
            String prevText = "上一页";
            String nextText = "下一页";
            String lastText = "最后一页";
            if (prevDisabled.equalsIgnoreCase("")) {
                firstText = "<a href='first' "
                            +
                        "onClick=\"javascript:document.pager.choice.value='first';document.pager.submit();return false;\">"
                            + "首  页"
                            + "</a>";
                prevText = "<a href='prev' "
                           +
                        "onClick=\"javascript:document.pager.choice.value='prev';document.pager.submit();return false;\">"
                           + "上一页"
                           + "</a>";
            }
            if (nextDisabled.equalsIgnoreCase("")) {
                nextText = "<a href='next' "
                           +
                        "onClick=\"javascript:document.pager.choice.value='next';document.pager.submit();return false;\">"
                           + "下一页"
                           + "</a>";
                lastText = "<a href='last' "
                           +
                        "onClick=\"javascript:document.pager.choice.value='last';document.pager.submit();return false;\">"
                           + "最后一页"
                           + "</a>";
            }
            String pageNoInput = "<input type='text' size='1' value='" + pageNo + "' "
                                 + "onChange=\"javascript:this.form.pageNo.value=this.value\">";

            bar = "每页pageSize条记录 | \n"
                  + "共pages页/total条记录 | \n"
                  + "prev \n next \n | 第pageNo页\n"
                  +
                    " <input type='submit' value='go' onClick=\"javascript:this.form.choice.value='current';\">\n";

            bar = StringUtil.replace(bar, "pageSize", pageSizeInput);
            bar = StringUtil.replace(bar, "pages", pages);
            bar = StringUtil.replace(bar, "total", total);
            bar = StringUtil.replace(bar, "prev", prevText);
            bar = StringUtil.replace(bar, "next", nextText);
            bar = StringUtil.replace(bar, "pageNo", pageNoInput);
        } /////end of if(text)
        return bar;
    }
}

⌨️ 快捷键说明

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