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

时间:2022-07-12 20:33:10

我用到的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参数,效果同控制器中添加

相关文章