grails框架的g:paginate分页标签的使用

Posted 愤怒的光头强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grails框架的g:paginate分页标签的使用相关的知识,希望对你有一定的参考价值。

我用到的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分页标签的使用的主要内容,如果未能解决你的问题,请参考以下文章

Grails extJS 网格分页

SSM框架利用自定义标签分页

Grails远程分页正在刷新整个页面而不是div

Grails App中的双重分页问题

MyBatis 插件使用-自定义简单的分页插件

分页技术框架(Pager-taglib)学习一(页面分页)