llucene 3.0 分页和高亮显示
package com.cee.com;
import java.util.List;
//分页类
public class PageBean {
?private List list; // 要返回的某一页的记录列表
?private int allRow; // 总记录数
?private int totalPage; // 总页数
?private int currentPage; // 当前页
?private int pageSize; // 每页记录数
?private int offset;
?public int getOffset() {
??return offset;
?}
?public void setOffset(int offset) {
??this.offset = offset;
?}
?private boolean isFirstPage; // 是否为第一页
?private boolean isLastPage; // 是否为最后一页
?private boolean hasPreviousPage; // 是否有前一页
?private boolean hasNextPage; // 是否有下一页
?public List getList() {
??return list;
?}
?public void setList(List list) {
??this.list = list;
?}
?public int getAllRow() {
??return allRow;
?}
?public void setAllRow(int allRow) {
??this.allRow = allRow;
?}
?public int getTotalPage() {
??int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
????/ pageSize + 1;
??return totalPage;
?}
?public void setTotalPage(int totalPage) {
??this.totalPage = totalPage;
?}
?public int getCurrentPage() {
??return currentPage;
?}
?public void setCurrentPage(int currentPage) {
??this.currentPage = currentPage;
?}
?public int getPageSize() {
??return pageSize;
?}
?public void setPageSize(int pageSize) {
??this.pageSize = pageSize;
?}
?/** */
?/**
? * 初始化分页信息
? */
?public void init() {
??this.isFirstPage = isFirstPage();
??this.isLastPage = isLastPage();
??this.hasPreviousPage = isHasPreviousPage();
??this.hasNextPage = isHasNextPage();
?}
?/** */
?/**
? * 以下判断页的信息,只需getter方法(is方法)即可
? *
? * @return
? */
?public boolean isFirstPage() {
??return currentPage == 1; // 如是当前页是第1页
?}
?public boolean isLastPage() {
??return currentPage == totalPage; // 如果当前页是最后一页
?}
?public boolean isHasPreviousPage() {
??return currentPage != 1; // 只要当前页不是第1页
?}
?public boolean isHasNextPage() {
if(totalPage==0){
return false;
}else{
return currentPage != totalPage; // 只要当前页不是最后1页
}
}?/** */
?/**
? * 计算总页数,静态方法,供外部直接通过类名调用
? *
? * @param pageSize
? *??????????? 每页记录数
? * @param allRow
? *??????????? 总记录数
? * @return 总页数
? */
?public static int countTotalPage(final int pageSize, final int allRow) {
??int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
????/ pageSize + 1;
??return totalPage;
?}
?/** */
?/**
? * 计算当前页开始记录
? *
? * @param pageSize
? *??????????? 每页记录数
? * @param currentPage
? *??????????? 当前第几页
? * @return 当前页开始记录号
? */
?public static int countOffset(final int pageSize, final int currentPage) {
??final int offset = pageSize * (currentPage - 1);
??return offset;
?}
?/** */
?/**
? * 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替
? *
? * @param page
? *??????????? 传入的参数(可能为空,即0,则返回1)
? * @return 当前页
? */
?public static int countCurrentPage(int page) {
??final int curPage = (page == 0 ? 1 : page);
??return curPage;
?}
?public static int lastSqlIdx(int rowStartIdx, int pageSize) {
??return rowStartIdx + pageSize;
?}
}