本文執行個體為大家分享了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();
}
以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援萬仟網。
如您對本文有疑問或者有任何想說的,請點選進行留言回複,萬千網友為您解惑!