Вы хотите, чтобы разбиение на страницы происходило в вашем контроллере или в вашем сервисе?
Если вы хотите разбить на страницы в контроллере, это легко сделать:
def myList = service.listItems()
if (params.sort)
myList = myList.sort {it."${params.sort}"}
if (params.order == "desc")
myList = myList.reverse()
int from = params.offset ?: 0
int to = from + (params.max ?: DEFAULT_SIZE)
myList = myList.subList(from, to)
Если вы хотите разбить на страницы в службе (например, чтобы не приходилось каждый раз получать все строки из службы), вам придется переместить туда логику разбиения на страницы. Как бы вы это реализовали, зависит от того, что делает сервис; если он извлекает данные с помощью операторов SQL, вы должны преобразовать параметры пагинации в такие директивы, как «limit» и «order by» и т. д.