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

grails实现分页查询

2016-10-19 10:27 218 查看
在datasource中加入:logsql=ture  可以看到 Hibernate的生成的SQL语句

在Goodscontroller中 写入
def search(){

if(!params.max ) params.max=2
if(!params.offset) params.offset=0
def serachClosure = {
if (params.categoryName){
category {
eq('categoryName', params.categoryName)
}
}
if (params.title){
like('title',"%${params.title}%")
}
if (params.description){
like('description',"%${params.description}%")
}
if (params.priceLow){
ge('price',new BigDecimal(params.priceLow))
}
if (params.priceHigh){
le('price',new BigDecimal(params.priceHigh))
}

}
def c = Goods.createCriteria()
params.sort="price"
params.order="asc"
def goodList=c.list(params,serachClosure)
def goodsCount=goodList.totalCount
println  "$goodsCount"
render(view:'index',model:[goodsInstanceList:goodList,goodsInstanceCount: goodsCount] )
}


同时也要修改显示分页导航:

让paginate生成的导航链能够继续按照当前的查询条件进行查询,需要设置g:paginate的params属性的值
<div class="pagination">
%{--<g:paginate total="${goodsInstanceCount ?: 0}" />--}%
<g:paginate total="${goodsInstanceList.totalCount}" params="${params}" />
</div>



在controller中还要修改:index()

def index(Integer max) {
/*params.max = Math.min(max ?: 10, 100)*/
if (!params.max)  params.max=3
respond Goods.list(params), model:[goodsInstanceCount: Goods.count()]

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  grails