本文執行個體為大家分享了Java實作分頁功能的具體代碼,供大家參考,具體内容如下
不用根據改變SQL的形式去查詢;
直接查詢所有的資料,根據頁碼自動顯示資料;
分頁對象
public class PageUtils implements Serializable {
private static final long serialVersionUID = -5247614532234782640L;
public final static String PAGE = "page";
public final static String PAGE_NO = "pageno";
public final static String PAGE_SIZE = "pagesize";
private long pageSize=10;//每頁顯示記錄數
private long firstResult=0;//當頁第一條記錄号
private long totalCount;//總記錄數
private long totalPage;//總頁碼
private long pageNo=1;//目前頁碼
private List> sumData;//此集合可用來儲存 合計資料
private List> data;//查詢結果
public long getPageSize() {
return pageSize;
}
public void setPageSize(long pageSize) {
this.pageSize = pageSize;
}
public long getFirstResult() {
if(pageNo>0){
firstResult=pageSize * (pageNo -1);
}else{
firstResult = 0;
}
return firstResult;
}
public long getNextPageResult(){
if(pageNo>0){
return pageSize*(pageNo-1);
}else{
return pageNo;
}
}
public void setFirstResult(long firstResult) {
this.firstResult = firstResult;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
totalPage = this.totalCount/pageSize;
if (totalPage == 0 || totalCount % pageSize != 0) {
totalPage++;
}
}
public long getTotalPage() {
return totalPage;
}
public void setTotalPage(long totalPage) {
this.totalPage = totalPage;
}
public long getPageNo() {
return pageNo;
}
public void setPageNo(long pageNo) {
this.pageNo = pageNo;
}
public List> getData() {
return data;
}
public void setData(List> data) {
this.data = data;
}
public boolean isFirstPage() {
return pageNo <= 1;
}
public boolean isLastPage() {
return pageNo >= getTotalPage();
}
public long getNextPage() {
if (isLastPage()) {
return pageNo;
} else {
return pageNo + 1;
}
}
public long getPrePage() {
if (isFirstPage()) {
return pageNo;
} else {
return pageNo - 1;
}
}
public PageUtils(){}
public PageUtils(long pageNo){
this.pageNo=pageNo;
}
public PageUtils(long pageNo,long pageSize){
this.pageNo=pageNo;
this.pageSize = pageSize;
}
public List> getSumData() {
return sumData;
}
public void setSumData(List> sumData) {
this.sumData = sumData;
}
}
查詢的資料實體
在查詢的實體裡添加頁碼和每頁顯示條數參數;
private int pageSize; //每頁顯示的條數
private int pageNo; //目前頁碼
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
控制層Controller
@RequestMapping("/list")
public String list(Model model,ChannelValueInfoView input) {
// input:傳入的參數為對象
PageUtils page=new PageUtils();
//如果傳入的目前條數為0,則賦予值(首次查詢不帶參);
if(input.getPageSize()==0){
//目前頁碼第一頁
input.setPageNo(1);
//每頁顯示條數,目前每頁顯示10條資料;
input.setPageSize(10);
}
page.setPageNo(input.getPageNo());
page.setPageSize(input.getPageSize());
//核心分頁代碼
PageHelper p=new PageHelper();
Page l=p.startPage(input.getPageNo(),input.getPageSize());
//緊跟着的第一個select查詢将會被分頁
channelValueService.getChannelValueInfoViewList(input);
model.addAttribute("input", input);
page.setData(l);
page.setTotalCount(l.getTotal());
model.addAttribute("page", page);
return "index";
}
頁面處理
//循環穿過來的PAGE.data資料
----------
總數:0
- 首頁
- <
- >
- 尾頁
----------
function onFirst() {
onList(1);
}
function onPre() {
var beginRow = parseInt($('#beginRow').html());
if (beginRow - 1 > 0) {
onList(beginRow - 1);
}
}
function onNext() {
var beginRow = parseInt($('#beginRow').html());
var totalCount = parseInt($('#totalCount').html());
var pageSize = parseInt($('#pageSize').val());
if (parseInt(totalCount / pageSize + 1) > beginRow + 1) {
onList(beginRow+1);
}
}
function onLast() {
var totalCount = parseInt($('#totalCount').html());
var pageSize = parseInt($('#pageSize').val());
onList(parseInt(totalCount / pageSize + 1) - 1);
}
function onList(pageNo) {
if (pageNo == 0)
pageNo = 1;
$('#pageNo').val(pageNo);
$("#content_form").submit();
}
以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援腳本之家。