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

📄 page.java

📁 一个新闻发布系统
💻 JAVA
字号:
package com.accp.t29.util;

public class Page {

	  private int offset;
	  private int size;
	  private int length;
	  private String url;
	  private String pageHeader;
	  private String pageNavigation;
	  
	  public Page()
	  {
		  
	  }
	  
	  public Page(int offset, int size, int length, String url, String pageHeader) {
	    this.offset = offset;
	    this.size = size;
	    this.length = length;
	    this.url = url;
	    this.pageHeader = pageHeader;
	  }

	/**
	   * 返回分页导航条
	   * @param offset int 起始记录的位置
	   * @param size int 总记录数
	   * @param length int 步长
	   * @param url String .do的url
	   * @param pageHeader String 导航条的前缀文字提示
	   * @return String
	   */
	  public String getPageNavigation() {
	    String pageNavigation = ""; //最终返回的分页导航条
	    //记录数超过一页,需要分页
	    if (size > length) {
	      String pref; //前缀
	      if (url.indexOf("?") > -1) {
	        //如果url中已经包含了其他的参数,就把offset参数接在后面
	        pref = "&";
	      }
	      else {
	        //如果url中没有别的参数
	        pref = "?";
	      }
	      //如果导航条包含header
	      if (pageHeader != null && pageHeader.length() > 0) {
	        pageNavigation = pageHeader + " : ";
	      }
	      //如果不是第一页,导航条将包含“<<”(第一页)和“<”(前一页)
	      if (offset > 0) {
	        pageNavigation += "<a href='" + url + pref + "offset=0'>[<<]</a>\n" +
	            "<a href='" + url + pref + "offset=" + (offset - length) +
	            "'>[<]</a>\n";
	      }
	      //导航条中,排头的那一页的offset值
	      int startOffset;
	      //位于导航条中间的那一页的offset值(半径)
	      int radius = Constants.MAX_PAGE_INDEX / 2 * length;
	      //如果当前的offset值小于半径
	      if (offset < radius || this.pageCount() <= Constants.MAX_PAGE_INDEX) {
	        //那么第一页排头
	        startOffset = 0;
	      }
	      else if (offset < size - radius) {
	        startOffset = offset - radius;
	      }
	      else {
	        startOffset = (size / length - Constants.MAX_PAGE_INDEX) * length;
	      }
	      for (int i = startOffset;
	           i < size && i < startOffset + Constants.MAX_PAGE_INDEX * length;
	           i += length) {
	        if (i == offset) {
	          //当前页号,加粗显示
	          pageNavigation += "<b>" + (i / length + 1) + "</b>\n";
	        }
	        else {
	          //其他页号,包含超链接
	          pageNavigation += "<a href='" + url + pref + "offset=" + i + "'>" +
	              (i / length + 1) + "</a>\n";
	        }
	      }
	      //如果不是最后一页,导航条将包含“>”(下一页)和“>>”(最后一页)
	      if (offset < size - length) {
	        pageNavigation += "<a href='" + url + pref + "offset=" +
	            (offset + length) + "'>[>]</a>\n" +
	            "<a href='" + url + pref + "offset=" + lastPageOffset() +
	            "'>[>>]</a>\n";
	      }
//	      System.out.println("radius : " + radius);
//	      System.out.println("start offset : " + startOffset);
	      return pageNavigation;
	    }
	    //记录不超过一页,不需要分页
	    else {
	      return "";
	    }
	  }
	  
	  public void setPageNavigation(String pageNavigation)
	  {
		  this.pageNavigation = pageNavigation;
	  }

	/**
	   * 返回分页后的总页数
	   * @param size int 总记录数
	   * @param length int 每页的记录数
	   * @return int
	   */
	  public int pageCount() {
	    int pagecount = 0;
	    if (size % length == 0) {
	      pagecount = size / length;
	    }
	    else {
	      pagecount = size / length + 1;
	    }
	    return pagecount;
	  }

	/**
	   * 返回最后一页的记录数
	   * @param size int 总记录数
	   * @param length int 每页的记录数
	   * @return int
	   */
	  public int lastPageSize() {
	    int lastpagesize = 0;
	    if (size % length == 0) {
	      lastpagesize = length;
	    }
	    else {
	      lastpagesize = size % length;
	    }
	    return lastpagesize;
	  }

	/**
	   * 返回最后一页的起始记录位置
	   * @param size int 总记录数
	   * @param length int 每页的记录数
	   * @return int
	   */
	  public int lastPageOffset() {
	    return size - lastPageSize();
	  }

	  public int getOffset() {
	    return offset;
	  }

	  public void setOffset(int offset) {
	    this.offset = offset;
	  }

	  public int getSize() {
	    return size;
	  }

	  public void setSize(int size) {
	    this.size = size;
	  }

	  public int getLength() {
	    return length;
	  }

	  public void setLength(int length) {
	    this.length = length;
	  }

	  public String getUrl() {
	    return url;
	  }

	  public void setUrl(String url) {
	    this.url = url;
	  }

	  public String getPageHeader() {
	    return pageHeader;
	  }

	  public void setPageHeader(String pageHeader) {
	    this.pageHeader = pageHeader;
	  }
}

⌨️ 快捷键说明

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