ssh的分頁操作
最近用學了一個ssh做了一個特殊的分頁,怎麼特殊呢?上才藝!
可以看到起始只能顯示1,2,3後面就是…,接下來
對就是…後面是五六七。的效果。
下面說明具體步驟。
sql語句有這條“select * from 表 limit ?,?”.兩個佔位符,第一個代表起始位置也就是初始值是從第幾開始進行的(最初是為0),第二個代表每次的個數即每次可以查詢幾條。
瞭解這行sql語句就要分析之後需要的條件:
1、當前頁
2、翻頁需要查詢幾條(翻頁條數)
3、總共資料庫的條數
4、總頁數==(總條數/翻頁條數)
這些條件可以用一個實體類來定義
然後用另外一個類去實現它:方法
1、當前頁可以自定義也可以預設為1(一般為1)
當你訪問另一個頁面時可以不設定預設為1
2、翻頁條數也可以自定義,或者傳參,因為 最上面的sql語句的兩個佔位符是需要當前頁、總條數、和翻頁數,所以可以寫一個方法
每次分頁都可以呼叫這個方法。
3、總條數資料庫全查可以得出
4、不用說了吧
然後就是解決最上面sql語句第一個佔位符的問題(起始位置),(提示)寫一個方法好呼叫。解決:(當前頁-1)乘翻頁條數。可以列舉幾個試試。
大致這幾個框架已經打好了,接下來該如何實現呢?
首先這個上一頁和下一頁不用說了當前頁數進行加一和減一,說一下這裡進行a標籤傳值是自動重新整理的,當你從mvc傳過來值時,直接在a標籤進行資料的加一和減一是自動實現的。
首頁和尾頁也是如此首頁的當前頁為1,而尾頁的當前頁就是總頁數
這個如何實現呢?
原本是有五個頁數,但現在只能看到後三個,因為前兩個被遮蔽了,因為只有當這五個頁數分別大於零才能顯現。即當前頁數為1時前面兩個都小於1,顯示不出來
當頁數為3左右各兩個就顯示出來了,後面兩個的限制是後倆的頁數小於總頁數。
圖中…的意思其實就是看不見正常五頁左邊和右邊的,有個限制條件加一加就能實現,具體有點難的就是有關頁數的類的實現有點困難我直接程式碼封上
下面展示。
// An highlighted block
public class pagebean {
//頁面大小
private Integer pagesize;
//當前頁
private Integer currentpage;
//總條數
private Integer totalcount;
//總頁數
private Integer totalpage;
//每頁顯示的頁數
private List list;
public pagebean(Integer pagesize,Integer currentpage,Integer totalcount) {
this.pagesize=pagesize;
this.currentpage=currentpage;
this.totalcount=totalcount;
//當前頁為空或者小於零把它看為一
if(this.currentpage==null||this.currentpage<1) {
this.currentpage=1;
}
//預設一般頁為五個屬性
// if(this.pagesize==null) {
// this.pagesize=5;
// }
//Math.ceil方法是向上取整
/*這裡一個坑,起初我以為是我的start方法有問題,實際就是沒問題,因為傳到currentpage一直是1!!
* 因為Math.ceil的方法我他媽多加了一個括號,如果先整數相處就直接四捨五入了,14/8等於一點多,java直接判斷
* 為1,所以totalpage一直是1,無論點選下一頁也沒用。
* */
this.totalpage=(int) Math.ceil(1.0*this.totalcount/this.pagesize);
// System.out.println( this.totalcount);
// System.out.println(this.pagesize);
// System.out.println(this.totalpage);
//判斷當前頁是否大於總頁數
if(this.currentpage>this.totalpage) {
this.currentpage=this.totalpage;
}
}
//獲取起始索引 不知道為什麼這麼方法用不了奇了怪了、、因為currentpage的值一直是1,所以不能重新整理
public Integer getstart() {
return (this.currentpage-1)*this.pagesize;
}
public Integer getPagesize() {
return pagesize;
}
public void setPagesize(Integer pagesize) {
this.pagesize = pagesize;
}
public Integer getCurrentpage() {
return currentpage;
}
public void setCurrentpage(Integer currentpage) {
this.currentpage = currentpage;
}
public Integer getTotalcount() {
return totalcount;
}
public void setTotalcount(Integer totalcount) {
this.totalcount = totalcount;
}
public Integer getTotalpage() {
return totalpage;
}
public void setTotalpage(Integer totalpage) {
this.totalpage = totalpage;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
相關文章
- SSH框架下的分頁查詢框架
- 【記錄】SSH分頁查詢功能
- SSH整合實現分頁查詢(兩種方式)
- 使用SSH完成條件及分頁查詢的主要程式碼
- PHP 原生操作 Mysql 分頁資料案例PHPMySql
- vue分頁全選和單選操作Vue
- 15、flask-模型-models-表的操作-分頁paginate()Flask模型
- Spring boot方式使用MyBatis-Plus分頁操作Spring BootMyBatis
- 網頁SSH客戶端的實現網頁客戶端
- JSP怎樣將查詢的資料實現分頁操作JS
- Django的分頁Django
- mysql分頁-limit offset分頁MySqlMIT
- ssh免密登入簡單操作
- MongoDB 的分頁(Pagination)MongoDB
- Oracle的特性分頁Oracle
- jstl 寫的分頁JS
- 分庫分表後的分頁查詢
- flask 分頁 | 翻頁Flask
- js操作網頁中的元素JS網頁
- php利用ssh操作遠端伺服器PHP伺服器
- MySQL的分頁查詢MySql
- 自己對分頁的理解
- Spring中的REST分頁SpringREST
- 分頁功能的實現
- php 分頁 分頁類 簡單實用PHP
- 分頁器
- Flask——分頁Flask
- 集合分頁
- php 分頁PHP
- 分頁案例
- MyBatis(八) 資料庫BLOB讀寫、批量更新操作、儲存過程呼叫、分表、分頁MyBatis資料庫儲存過程
- Lavarel Ajax 分頁時 獲取分頁資訊
- SSH客戶端常用工具SecureCRT操作客戶端Securecrt
- MyBatis實現分頁的方式MyBatis
- mybatisPlus分頁外掛的使用MyBatis
- 列印網頁的時候,如何讓指定的元素另起一頁(列印分頁)?網頁
- REST framework:分頁RESTFramework
- 如何高效分頁