📄 pagelist.java
字号:
package com.tanghan.util;
/**
* 本类是一个参数类。<br>
* 主要在作分页显示时使用。其表示从什么地方开始取数据,取多少条数据。<br>
* 在该参数中还可以可到合乎条件的数据的总数量。<br>
* <br>
* 使用说明:<br>
* PageList主要是记录在一个列表中没次需要列出多少条记录,以及相关的信息<br>
* 其记录的信息包括<br>
* <li>showAll 是否显示所有数据,如果不需要程序分页,则showAll = true</li>
* <li>start (只读)起始位置,根据currentPage,list得到, 其主要指明,从第几条数据开始取数和显示,如果start=11,那么程序就应该从满足条件的第11条数据开始显示</li>
* <li>list 每次显示的数据数目 如果start=11,而list=10,那么程序就应该显示从11到20的满足条件的10条数据</li>
* <li>size 总的记录条数</li>
* <li>currentPage 当前页数 至少为1</li>
* <li>totalPage (只读)总的记录条数, 根据list和size得到,当无法计算时,为1</li>
*
* @author Jerry Tang
* @version v0.1.0
* @createdate 2003-3-25
* @copyright (C) 2003 Tanghan工作组
*
*
*/
public class PageList {
/** 是否显示所有数据,
* 是则不用分页显示
* 否则分页显示
* */
protected boolean showAll;
/** (只读)起始位置,根据currentPage,list得到,
* 其主要指明,从第几条数据开始取数和显示,如果start=11,那么程序就应该从满足条件的第11条数据开始显示
*
* */
protected long start;
/** 每次显示的数据数目
* 如果start=11,而list=10,那么程序就应该显示从11到20的满足条件的10条数据
* */
protected int list;
/**总的记录条数
* 该属性比较特殊,其在查询结果出来以后得到所有记录的条数,然后改变该属性
* */
protected long size;
/**
* 当前页数 至少为1
* */
protected long currentPage;
/**
* (只读)总的记录条数
* 根据list和size得到,当无法计算时,为1
* */
protected long totalPage;
/**构造函数
* */
public PageList(){
init();
}
/**构造函数
* @param showAll 是否显示所有数据
* */
public PageList(boolean showAll){
init();
this.showAll = showAll;
}
/**构造函数
* @param currentPage 当前页面
* @param list 每一页的记录条数
* */
public PageList(long currentPage,int list){
init();
if(currentPage<1){
this.currentPage=1;
}else{
this.currentPage = currentPage;
}
if(list<1){
this.list=1;
}else{
this.list = list;
}
changeStart();
}
/**数据初始化*/
protected void init(){
showAll = false;
list = 20;
size = 0;
currentPage = 1;
totalPage = 1;
changeStart();
changTotalPage();
}
/**
* 根据currentPage和list修改start的值
* */
protected void changeStart(){
start = (currentPage>1)? (currentPage-1) * list +1 : 1;
}
/**
* Returns the list.
* @return int
*/
public int getList() {
return list;
}
/**
* Returns the showAll.
* @return boolean
*/
public boolean isShowAll() {
return showAll;
}
/**
* Returns the size.
* @return long
*/
public long getSize() {
return size;
}
/**
* Returns the start.
* @return long
*/
public long getStart() {
return start;
}
/**
* Returns the totalPage.
* @return long
*/
public long getTotalPage() {
return totalPage;
}
/**
* Sets the list.
* @param list The list to set
*/
public void setList(int list) {
this.list = list;
changeStart();
changTotalPage();
}
/**
* Sets the showAll.
* @param showAll The showAll to set
*/
public void setShowAll(boolean showAll) {
this.showAll = showAll;
}
/**
* Sets the size.
* @param size The size to set
*/
public void setSize(long size) {
this.size = size;
changTotalPage();
}
/**修改总共多少页*/
private void changTotalPage(){
if(size>0){
totalPage = ((size%list)>0)? size/list+1: size/list;
}else{
totalPage = 1;
}
currentPage = (currentPage>totalPage)?totalPage:currentPage;
}
/**
* Returns the currentPage.
* @return long
*/
public long getCurrentPage() {
return currentPage;
}
/**
* Sets the currentPage.
* @param currentPage The currentPage to set
*/
public void setCurrentPage(long currentPage) {
this.currentPage = currentPage;
changeStart();
}
/**
* 重新初始化
* */
public void reset(){
init();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -