分页:第一页显示所有结果

时间:2015-02-05 01:05:28

标签: grails pagination gsp

我想在几个页面上显示查询结果,因此我使用标签分页。 我在所有页面中都有正确的输出(我想要每页5个结果),但是第一个。 在第一页中,显示所有结果。

控制器:

 def questions(){
    def questions = Question.list(params)

    [questions: questions, total: Question.count()?:0, tags: Tags.list(), params: params]
}

查看

 <g:each in="${questions}" var="question">                                      
      <div class="row">
         ${question?.body }
     </div>
 </g:each>
 <div class=pagination>
  <g:paginate controller="Question" action="list" total="${total}" max="5" params="${params}"/>
</div>

为什么我在第一页中有所有结果?

2 个答案:

答案 0 :(得分:0)

这是因为params没有max值。

设置params.max = 10然后调用questions()会导致第一页有10个项目。

// will result in Question.list(max: 10)
def questions = Question.list(params)

但是,请确保后续页面再次调用相同的操作,然后params.max必须设置为5或完全删除,因为来自max的{​​{1}}会处理其余部分。

答案 1 :(得分:0)

您可以在控制器操作的开头添加以下行:

params.max = params.max ?: 5

如果没有给出max参数,则默认值为5。