TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
使用实例:
StringPager pager = new StringPager();
pager.setSizePerPage(5);// 每页显示字符数
pager.setText("12345678901");// 需要分页的长文本
pager.setCurrentPage(2);// 当前页码
System.out.println(pager.getTotalPage());// 总页数
// 当前页的字符串
System.out.println(pager.getCurrentPagedText());
注意: 基于 java 的字符串长度概念, 因此每页显示的是中文和英文都作为长度为1的分页. 全部源文件:
package examples;
/*
* @(#)StringPager.java 1.00 2004-10-10
*
* Copyright 2004 . All rights reserved.
* PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
/**
* StringPager, 字符串分页.
*
* @author 刘长炯
* @version 1.00 2004-10-10
*/
public class StringPager {
/** 当前页码数 */
private int currentPage = 1;
/** 需要分页的长字符串 */
private String text;
/** 每页显示字符数, 默认为 200 */
private int sizePerPage = 200;
/** 总页数 */
private int totalPage;
public StringPager() {}
/**
* 返回当前页的字符串.
* @return
*/
public String getCurrentPagedText() {
try {
if(getCurrentPage() < getTotalPage()) {
return getText().substring((getCurrentPage() - 1) * getSizePerPage(),
getCurrentPage() * getSizePerPage());
} else if(getTotalPage() > 0) {
return getText().substring((getCurrentPage() - 1) * getSizePerPage());
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* @return Returns the 当前页码数.
*/
public int getCurrentPage() {
if(currentPage <= 0) currentPage = 1;
return currentPage;
}
/**
* 设置当前页码, 从 1 开始.
*
* @param currentPage
* The 当前页码数 to set.
*/
public void setCurrentPage(int currentPage) {
if (currentPage <= 0) {
currentPage = 1;
}
this.currentPage = currentPage;
}
/**
* @return Returns the 总页码数, 如果没有数据, 就返回 1.
*/
public int getTotalPage() {
if(getText() == null) totalPage = 0;
totalPage = (int) Math.ceil(1.0 * getText().length() / getSizePerPage()); // 总页面数
if (totalPage == 0)
totalPage = 1;
return totalPage;
}
/**
* @param totalPage
* The totalPage to set.
*/
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public static void main(String[] args) {
StringPager pager = new StringPager();
pager.setSizePerPage(5);
pager.setText("12345678901");
pager.setCurrentPage(2);
System.out.println(pager.getTotalPage());
System.out.println(pager.getCurrentPagedText());
}
/**
* @return Returns the 每页显示字符数.
*/
public int getSizePerPage() {
return sizePerPage;
}
/**
* @param sizePerPage
* The 每页显示字符数 to set.
*/
public void setSizePerPage(int sizePerPage) {
this.sizePerPage = sizePerPage;
}
/**
* @return Returns the 需要分页的长字符串.
*/
public String getText() {
return text;
}
/**
* @param text
* The 需要分页的长字符串 to set.
*/
public void setText(String text) {
this.text = text;
}
}
下面是jsp调用:testpage.jsp(请下载)
源码下载:http://file.javaxxz.com/2014/10/1/005204594.zip |
|