標籤:
我用到的grails是2.4.4。
該版本下遊一個標籤g:paginate
該標籤下有以下幾個參數:total(必須要填寫的項)、controller、action、prev、max、offset等等,我用到的有這幾個參數,詳細參數的使用參考API文檔。
普通分頁:(Tsystemparam是我代碼的一個域類)
後台代碼:寫在控制器下需要執行的方法
params.max=5//給params參數附一個map集合key=max、value=5,每頁展示的資料條數
\\跳轉到showsysParamList.gsp頁面,傳遞到前台的map集合帶有查出來的所有資料和資料的總數量,在使用list方法時一定要傳入params參數,因為params參數設定了每頁顯示的資料量和offset(位移量,如果不設定max和offset則預設值為10,設定了max之後offset可以根據資料來自動調整位移量)。統計的數量的總個數一定要傳遞個前台,用前台的total來接收。
render(view:"showsysParamList",model:[sys:Tsystemparam.list(params),sysCount:Tsystemparam.count()])
帶條件分頁
//給params添加map集合key=max,value=5
params.max=5;
//Grails的 HibernateCriteriaBuilder 執行個體,可用來構建Criteria查詢。
def c = Tsystemparam.createCriteria()
//params的值必須要有,否則會無法使用totalCount方法
def results = c.list(params) {
like("name", "%w%")
//可以帶其他條件查詢或者排序,我的只用到了模糊查詢其餘的都省略了
//and { // between("balance", 500, 1000) // eq("branch", "London") //} //maxResults(10) //order("holderLastName", "desc")
}
//totalCount方法只有在def results = c.list(params) {傳遞給list方法params參數才可以使用params可以使用max:5,offset:0來代替
render(view:"showsysParamList",model:[syst: results, sysCount:results.totalCount])
前台代碼:只需添加該標籤即可
<g:paginate next="下一頁" prev="上一頁" controller="system" action="sysparamlist" total="${sysCount}"/>
total接收到的是控制器傳遞過來的查詢出來的總共的數量,如果在前台沒有設定max和offset可以在p:paginate標籤下添加max和offset參數,效果同控制器中添加
grails架構的g:paginate分頁標籤的使用