Java 如何使用grails分页
我是grails的新手,我尝试过使用grails文档中的grails分页标记,我在index.gsp中有一个搜索表单 我不知道如何传递params.max和params.offset 我只使用一个动作索引 我有一个索引操作,其中包含列出一些书籍的查询:Java 如何使用grails分页,java,grails,pagination,criteria,Java,Grails,Pagination,Criteria,我是grails的新手,我尝试过使用grails文档中的grails分页标记,我在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 = 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 )
}
这是my index.gsp中的分页标记:
<g:paginate controller="displayBook" action="index" total="${bookPagin.size()}" params="[author:author]"/>
现在,这段代码显示前10个结果,但当我单击第二页时
它不接受输入author参数,尽管我在GET请求中使用author参数,但是还有其他解决方案吗 使用grails进行分页非常容易实现。请通过
您现在应该可以实现分页了。下面是我将如何实现的
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中,使用以下内容迭代您的搜索结果
:
<g:each var="book" in="${searchResults}">...
。。。
之后包括:
<g:paginate controller="displayBook" action="index" total="${total}"/>
我必须与条件一起使用,因为我有多个搜索参数,在索引操作中:在所有分页示例中,我发送类似authorList[authorList:authorList]的对象,它们将参数从索引操作发送到另一个称为g:paginate的操作,但我下次只使用一个动作索引,包括您的实际代码。我们只能按你在问题中所说的去做。这没有多大帮助。params属性对我来说很好。您还没有包括控制器方法的其余部分,您可以在其中设置模型
属性,因此请检查作者
是否是正确的变量名-我通常使用[作者:params.author]
。仅供参考,如果操作
和控制器
属性与当前页面相同(通常是相同的),则可以省略它们。