Разбиение результатов поиска на страницы с помощью Grails

У меня есть домен «страна», а в list.gsp у меня есть блок поиска с полем ввода. Первая проблема была, когда я пытался использовать разбиение на страницы в моем списке, всегда отображались все результаты, в этом случае я нашел решение и отправил только 10 значений для отображения (, если вы знаете другое решение, пожалуйста, сообщите мне ). Мой поиск выглядит так:

    def search = {
       if(query){
           def srchResults = searchableService.search(query, params)

           def result =  Country.executeQuery("select  new map(a.name as name, a.datacenter as datacenter) from Country a where a.name like '%"+ params.q + "%'")

           if (params.offset)
           {
               x = params.offset.toInteger()
               y = Math.min(params.offset.toInteger()+9, result.size()-1)
           } else
            {
            x = 0
            size = result.size() - 1
            y = Math.min(size, 9)
             }     
           def q=params.q

          [countryInstanceList: result.getAt(x.. y), countryInstanceTotal:result.size(), q:params.q]

       }else{
           redirect(action: "list")
       }
   }

Теперь у меня другая проблема: когда я нажимаю следующую страницу, мои параметры из поля поиска очищаются, а результат нулевой. Я пытался отправить значение поля в качестве параметра, но я делаю что-то не так.

Моя страница поиска выглядит как:

<g:form action="search">
            <div class="search" >
                Search Country
                <g:hiddenField name="q" value="${params.q}" />
                <input type="text" name="q" value="${params.q}" />
                <input type="submit" value="Search"/>
            </div>
        </g:form>

............

5
задан ataylor 2 August 2012 в 15:10
поделиться