如何使用grails分页

时间:2014-04-09 09:13:05

标签: java grails pagination criteria

我是grails的新手,我尝试使用grails文档中的grails pagination标签,我的index.gsp中有一个搜索表单

我不知道如何通过params.max和params.offset 我只使用一个动作索引

我有一个索引操作,其中包含列出一些书籍的查询:

params.max = 10
params.offset = 0
def author=params.author // i get the input search params
def max = 10
def offset = 0
if(params.max){
    max = params.max
}
if(params.offset){
    offset = params.offset
}

def bookPagin=Book.createCriteria().list {      
    eq("author", author)}
    maxResults(max)
    firstResult(offset )
}

这是我的index.gsp中的paginate标签:

 <g:paginate controller="displayBook" action="index" total="${bookPagin.size()}" params="[author:author]"/>

现在此代码显示前10个结果,但是当我点击第二个页面时 虽然我在GET请求中讨论了作者参数,但它没有输入作者参数,还有其他解决方案吗?

2 个答案:

答案 0 :(得分:4)

以下是我将如何做到这一点......

def searchString = "${params.author}%"
def searchResults = Book.findAllByAuthorLike(searchString, params) // max, offset automatically handled
def total = Book.countByAuthorLike(searchString)
render (model:[searchResults: searchResults, total: total])
在您的GSP中

,使用以下内容迭代searchResults

<g:each var="book" in="${searchResults}">...

之后包括:

 <g:paginate controller="displayBook" action="index" total="${total}"/>

答案 1 :(得分:1)