您的位置:首页 > 大数据 > 人工智能

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

2009-05-24 22:33 519 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  grails list sql string date