grails如何分页

    我所在的部门所用的框架是grails。今天就来说说用grails框架如何对列表进行分页。

            1  在controller中 写上如下代码。意思为从每页15行。

              params.max = Math.min(params.max ? params.max.toInteger() : 15,  100)
              params.offset = params.offset ? params.offset.toInteger() : 0;
              def offsetAfter = params.offset + 15

           2  对sql语句进行分页

          def  rowsql="""SELECT * FROM (SELECT A.*,ROWNUM RN FROM("""+sql+""")A
                       WHERE ROWNUM <= ${offsetAfter})WHERE RN> ${params.offset}""";

         3.  计算sql语句执行的总数

            def   sqlTotal=""" select count(*) total from ("""+sql+""")""";

            说明:在grails中sql语句用""" """ 三个双引号括起来是因为这样的话 ,不过sql语句是否换行,都会把它当做一条sql语句还执行。如果只写了一个双引号的话,一旦换行 程序不会把它当做一条sql语句执行,继而出错

        4.返回total给页面

           [total:total]

       5.在页面接受

     <div class="paginateButtons">
                <g:paginate total="${total}" />
      </div>

好啦。。现在就已经大功告成了。

 当然,如果你的list页面有查询条件,又想分页的时候点击下一页,查询条件仍然存在。你要做的事情有两个

         1.在controller中将值传给页面

        2 在页面的时候把值传给controller如:

        <div class="paginateButtons">
                <g:paginate total="${total}"  params="[lineId:lineId,choose:choose,addressCode:addressCode]" />
        </div>

OK 搞定!

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值