pagedselection.java

来自「这是一个工作流管理的后端EJB实现」· Java 代码 · 共 215 行

JAVA
215
字号
/*
 * Created on May 13, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.coshare.joyteam.projectMgr.webbeans;

import javax.servlet.http.HttpServletResponse;



/**
 * @author Edward
 *
 * 
 * 对表单进行分页显示的Bean
 */
abstract public class PagedSelection {


	/**
	 * 用于处理分页显示的类
	 */
	PageNumber pageNumber=null;
	

	/**
	 * 表格的css样式
	 */
	String css;

	
	/**
	 * 显示[上一页][下一页]等链接的table的css
	 */
	String linkcss;
	/**
	 * 每页显示的记录条数
	 */
	int nline=6;
	


	/**
	 * 设置每页的记录条数
	 * @param n
	 */
	public void setNline(int n){
		this.nline = n;
	}
	/**
	 * 获得每页的记录条数
	 * @return
	 */
	public int getNline(){
		return this.nline;
	}
	
	
	/**
	 * 设置显示表格的css
	 * @param css
	 */
	public void setCss(String css){
		this.css = css;
	}
	/**
	 * 活动显示表格额css
	 * @return
	 */
	public String getCss(){
		return this.css;
	}
	public PagedSelection(){
		
	}
	/**
	 * 获得显示[上一页][下一页]等链接的table的css
	 * @return <code>String</code> 返回显示[上一页][下一页]等链接的table的css
	 */
	public String getLinkcss(){
		return this.linkcss;
	}
	/**
	 * 设置显示[上一页][下一页]等链接的table的css
	 * @param <code>String</code> linkcss 显示[上一页][下一页]等链接的table的css
	 */
	public void setLinkcss(String linkcss){
		this.linkcss = linkcss;
	}
	
	/**
	 * 遍历结果集,并把结果集组织成html表格的形式
	 * @return <code>String</code> html表格形式表示的结果集
	 */
	private String showList(){
		StringBuffer tableStr=new StringBuffer();
		tableStr.append("<Table class=\""+this.css+"\" ><TBODY>");
		this.organizeTable(tableStr);
		
	    
	    tableStr.append("</TBODY></Table>");

	    return tableStr.toString();
	  	
	}

	/**
	 * 将数据组织成html形式的表格
	 * @param tableStr <code>StringBuffer</code> 
	 */
    abstract protected void organizeTable(StringBuffer tableStr );
	
	/**
	 * 获得所需的结果集,为showNext(),showPrevious(),show()等查许做准备
	 * 
	 */
	abstract public void prepareResultSet();
	
	/**
	 * 返回下个页面的内容
	 * @return <code>String</code> 下个页面的html表格形式的结果集
	 */
	
	public String showNext(){
		  int n = pageNumber.getShowPage();
		  n=(n+1);
		  if(n>pageNumber.getPageCount())
		  	n=pageNumber.getPageCount();
		  pageNumber.setShowPage(n);
		 
		
		  return showList();
		}
	
	/**
	 * 显示上个页面的内容
	 * 
	 * @return <code>String</code> 上个页面的html表格形式的结果集
	 */
	public String showPrevious(){
		int n = pageNumber.getShowPage();
		n=n-1;
		if(n<=0)
		  	n=1;
		pageNumber.setShowPage(n);
		return showList();
	}
	/**
	 * 显示第n个页面的内容
	 * 
	 * @return <code>String</code> 第n个页面的html表格形式的结果集
	 */
	public String show(int n){
			pageNumber.setShowPage(n);
			return showList();
	}
	
	
	public String showPagedTable(String npage){
		if(npage==null)
			npage="1";
		if(npage.equals("next")){
			return this.showNext();
		}else if( npage.equals("previous") ){
			return this.showPrevious();
		}else{
			return this.show(Integer.parseInt(npage));
		}
	}
	/**
	 * 获得显示[上一页][下一页]等链接的table,是以html形式组织的
	 * @param response <code>HttpServletResponse</code> servlet中默认的response对象
	 * @return <code>String</code> 显示[上一页][下一页]等链接的table
	 */
	public String showLinks( HttpServletResponse response,String thisPageName ){
		StringBuffer buffer=new StringBuffer();
		buffer.append("<Table class=\""+this.linkcss+"\" ><tr><td>");
		buffer.append("共"+this.pageNumber.rowCount+"条 每页"+this.pageNumber.getPageSize()+"条 分"+
				this.pageNumber.getPageCount()+"页 第"+this.pageNumber.getShowPage()+"页 ");
		if( this.pageNumber.getShowPage()==1 )
			buffer.append("[第一页] [上一页] ");
		else{
			String str1=response.encodeURL(thisPageName+"?npage=1");
			buffer.append("<a href="+str1+">");
			buffer.append("[第一页] ");
			buffer.append("</a>");
			String str2=response.encodeURL(thisPageName+"?npage=previous");
			buffer.append("<a href="+str2+">");
			buffer.append("[上一页] ");
			buffer.append("</a>");
		}
		if( this.pageNumber.getShowPage()==this.pageNumber.getPageCount() )
			buffer.append("[下一页] [最后页] ");
		else{
			String str1=response.encodeURL(thisPageName+"?npage=next");
			buffer.append("<a href="+str1+">");
			buffer.append("[下一页] ");
			buffer.append("</a>");
			String str2=response.encodeURL(thisPageName+"?npage="+this.pageNumber.getPageCount());
			buffer.append("<a href="+str2+">");
			buffer.append("[最后页] ");
			buffer.append("</a>");
		}
		
		
		buffer.append("</td></tr></table>");
		
		
		return buffer.toString();
	}
	
}

⌨️ 快捷键说明

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