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

📄 pagetag.java

📁 一个jsp写的bbs
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.laoer.bbscs.web.taglib;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

import org.apache.commons.lang.*;
import org.apache.struts.taglib.*;
import com.laoer.bbscs.service.web.*;

/**
 * <p>Title: Tianyi BBS</p>
 *
 * <p>Description: BBSCS</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: Laoer.com</p>
 *
 * @author Gong Tianyi
 * @version 7.0
 */
public class PageTag
    extends TagSupport {

  protected String name = "";

  protected String styleClass = "";

  protected String property = null;

  protected String scope = null;

  protected String argPage = "page";

  protected String argTotal = "total";

  protected int pageSep = 10;

  protected String javaScript = "";

  public PageTag() {
  }

  public int doStartTag() throws JspException {
    return (SKIP_BODY);
  }

  public int doEndTag() throws JspException {
    Pages pages;
    Object value = TagUtils.getInstance().lookup(pageContext, name, property, scope);
    if (value == null) {
      return (SKIP_BODY);
    }
    pages = (Pages) value;

    //一行显示页数
    int pagesep = this.pageSep;
    //总行数
    int allpagesep = (int) Math.ceil( (pages.getAllPage() + pagesep - 1) / pagesep);
    //当前行数
    int cpagesep = (int) Math.ceil( (pages.getCpage() + pagesep - 1) / pagesep);
    //当前一行显示页数
    int cnum;
    if (pages.getAllPage() > 0) {
      //在页中
      if (cpagesep != allpagesep) {
        cnum = pagesep;
      }
      //页末
      else {
        cnum = pages.getAllPage() % pagesep;
        //正好整除
        if (cnum == 0) {
          cnum = pagesep;
        }
      }
    }
    else {
      cnum = 0;
    }
    //System.out.println("cpage:" + pages.getCpage() + " cpagesep:" + cpagesep + " allpagesep:" + allpagesep);

    String fileName = pages.getFileName();

    StringBuffer sb = new StringBuffer();

    if (pages.isUseUrlRewrite()) { //使用URL Rewrite
      if (StringUtils.isBlank(this.javaScript)) {

        sb.append("<span");

        if (StringUtils.isNotBlank(this.styleClass)) {
          sb.append(" class=\"");
          sb.append(this.styleClass);
          sb.append("\"");
        }
        sb.append(">");

        if (cpagesep > 1) {
          String tmpFileName = fileName;
          tmpFileName = this.replacePage(tmpFileName, 1);
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
          sb.append("<a href=\"");
          sb.append(tmpFileName);
          sb.append("\">");
          //sb.append("|&lt;");
          sb.append("&laquo;");
          sb.append("</a>");

          tmpFileName = fileName;
          //往前一行
          int previous;
          if (pages.getCpage() <= 1) {
            previous = 1;
          }
          else {
            previous = pages.getCpage() - 1;
          }
          tmpFileName = this.replacePage(tmpFileName, previous);
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
          sb.append(" <a href=\"");
          sb.append(tmpFileName);
          sb.append("\">");
          //sb.append("&lt;");
          sb.append("&#8249;");
          sb.append("</a>");
        }

        for (int i = 0; i < cnum; i++) {
          String tmpFileName = fileName;

          tmpFileName = this.replacePage(tmpFileName, ( (i + 1) + ( (cpagesep - 1) * pagesep)));
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());

          sb.append(" <a href=\"");
          sb.append(tmpFileName);

          sb.append("\">");
          if (pages.getCpage() == (i + 1) + ( (cpagesep - 1) * pagesep)) {
            sb.append("<strong>");
            sb.append( (i + 1) + ( (cpagesep - 1) * pagesep));
            sb.append("</strong>");
          }
          else {
            sb.append( ( (i + 1) + ( (cpagesep - 1) * pagesep)));
          }
          sb.append("</a>");
        }

        if (cpagesep < allpagesep) {

          String tmpFileName = fileName;

          int next;
          if (pages.getCpage() >= pages.getAllPage()) {
            next = (int) pages.getAllPage();
          }
          else {
            next = pages.getCpage() + 1;
          }

          tmpFileName = this.replacePage(tmpFileName, next);
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());

          sb.append(" <a href=\"");
          sb.append(tmpFileName);
          sb.append("\">");
          sb.append("&#8250;");
          sb.append("</a> ");

          tmpFileName = fileName;
          tmpFileName = this.replacePage(tmpFileName, pages.getAllPage());
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());

          sb.append(" <a href=\"");
          sb.append(tmpFileName);
          sb.append("\">");
          //sb.append("&gt;|");
          sb.append("&raquo;");
          sb.append("</a>");
        }
        sb.append("</span>");

      }
      else {

        sb.append("<span");

        if (StringUtils.isNotBlank(this.styleClass)) {
          sb.append(" class=\"");
          sb.append(this.styleClass);
          sb.append("\"");
        }
        sb.append(">");

        if (cpagesep > 1) {
          String tmpFileName = fileName;
          tmpFileName = this.replacePage(tmpFileName, 1);
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
          sb.append("<a href=\"javascript:;\" onclick=\"");
          sb.append(this.javaScript);
          sb.append("('");
          sb.append(tmpFileName);
          sb.append("');\">");
          //sb.append("\">");
          //sb.append("|&lt;");
          sb.append("&laquo;");
          sb.append("</a>");

          tmpFileName = fileName;
          //往前一行
          int previous;
          if (pages.getCpage() <= 1) {
            previous = 1;
          }
          else {
            previous = pages.getCpage() - 1;
          }
          tmpFileName = this.replacePage(tmpFileName, previous);
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());
          //sb.append(" <a href=\"");
          //sb.append(tmpFileName);
          //sb.append("\">");
          //sb.append("&lt;");
          sb.append("<a href=\"javascript:;\" onclick=\"");
          sb.append(this.javaScript);
          sb.append("('");
          sb.append(tmpFileName);
          sb.append("');\">");

          sb.append("&#8249;");
          sb.append("</a>");
        }

        for (int i = 0; i < cnum; i++) {
          String tmpFileName = fileName;

          tmpFileName = this.replacePage(tmpFileName, ( (i + 1) + ( (cpagesep - 1) * pagesep)));
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());

          //sb.append(" <a href=\"");
          //sb.append(tmpFileName);
          //sb.append("\">");

          sb.append("<a href=\"javascript:;\" onclick=\"");
          sb.append(this.javaScript);
          sb.append("('");
          sb.append(tmpFileName);
          sb.append("');\">");


          if (pages.getCpage() == (i + 1) + ( (cpagesep - 1) * pagesep)) {
            sb.append("<strong>");
            sb.append( (i + 1) + ( (cpagesep - 1) * pagesep));
            sb.append("</strong>");
          }
          else {
            sb.append( ( (i + 1) + ( (cpagesep - 1) * pagesep)));
          }
          sb.append("</a>");
        }

        if (cpagesep < allpagesep) {

          String tmpFileName = fileName;

          int next;
          if (pages.getCpage() >= pages.getAllPage()) {
            next = (int) pages.getAllPage();
          }
          else {
            next = pages.getCpage() + 1;
          }

          tmpFileName = this.replacePage(tmpFileName, next);
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());

          //sb.append(" <a href=\"");
          //sb.append(tmpFileName);
          //sb.append("\">");
          sb.append("<a href=\"javascript:;\" onclick=\"");
          sb.append(this.javaScript);
          sb.append("('");
          sb.append(tmpFileName);
          sb.append("');\">");

          sb.append("&#8250;");
          sb.append("</a> ");

          tmpFileName = fileName;
          tmpFileName = this.replacePage(tmpFileName, pages.getAllPage());
          tmpFileName = this.replaceTotal(tmpFileName, pages.getTotalNum());

          //sb.append(" <a href=\"");
          //sb.append(tmpFileName);
          //sb.append("\">");
          sb.append("<a href=\"javascript:;\" onclick=\"");
          sb.append(this.javaScript);
          sb.append("('");
          sb.append(tmpFileName);
          sb.append("');\">");

          //sb.append("&gt;|");
          sb.append("&raquo;");
          sb.append("</a>");
        }
        sb.append("</span>");


      }
    }
    else { //不使用URL Rewrite
      if (fileName.indexOf("?") == -1) {
        fileName = fileName + "?";
      }
      else {
        if (!fileName.endsWith("&")) {
          fileName = fileName + "&";
        }
      }

      if (StringUtils.isBlank(this.javaScript)) {

        /**
         * previous butten ,append to
         * <a href='xxx.lt?page=x&t=x'><img></a>
         */
        sb.append("<span");

        if (StringUtils.isNotBlank(this.styleClass)) {
          sb.append(" class=\"");
          sb.append(this.styleClass);
          sb.append("\"");
        }
        sb.append(">");

        if (cpagesep > 1) {
          sb.append("<a href=\"");
          sb.append(fileName);
          sb.append(this.getArgPage());
          sb.append("=1&");
          sb.append(this.argTotal);
          sb.append("=");
          sb.append(pages.getTotalNum());
          sb.append("\">");

⌨️ 快捷键说明

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