grails笔记-----实现动态查询并且分页

grails笔记-----实现动态查询并且分页

虽然grails自动生成的list页面有分页功能,但是在实际情况中那样直接分页是不够的,一般列表上面都必须有查询功能,利用grails的findAll和页面上的paginate标签、sortableColumn标签可以实现完美的查询分页功能

CustomerController内list闭包的代码

 

    def list = {
        //从页面传来的查询参数: 1._rosRequestman(申请人) 2._rosState_id(执勤状态) 3._rosLastchangefrom(开始时间) 4. _rosLastchangeto(结束时间) 5._rosDel(是否查询全部)
        def df = new SimpleDateFormat('yyyy-MM-dd')
        if (!params.max) params.max = '10'
        if (!params.sort) params.sort = 'id'
        if (!params.offset) params.offset = '0'
        if (!params.order) params.order = 'asc'
        if (!params._rosRequestman) params._rosRequestman = ''
        //涉及到种类查询不能用like,所以先做好sql段然后拼接到后面sql中去(后面用红色字体标出)
        String rosStateSql = params._rosState_id?" and str(r.rosState) = '${params._rosState_id}' ":""
        //查询时间: 如果开始时间不填就默认成1970年,如果结束时间不填就默认为当前系统时间
        java.util.Date _rosLastchangefrom = params._rosLastchangefrom?df.parse(params._rosLastchangefrom) :df.parse('1970-01-01')
        java.util.Date _rosLastchangeto = params._rosLastchangeto?df.parse(params._rosLastchangeto):new Date()
        //由于我做了逻辑删除,表中rosDel这个字段标示是否被删除,当要全部查询的时候可以吧删除的数据也查出来,这里结合了grails中的checkBox标签
        def _rosDelState = (params._rosDel == 'on')?'':'0'
        //results是查询结果

 

       

效果图

 

更详细的原文地址:http://www.haohaonews.com/show.php?tid=14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值