Как сделать пагинацию с помощью Freemarker и Spring? - PullRequest
3 голосов
/ 07 октября 2011

У меня есть шаблон Freemarker, отображающий список вещей, теперь я хочу добавить нумерацию страниц.

Я изменил код на стороне сервера, чтобы я мог поместить в основу формы номер страницы (по умолчанию 1) и размер страницы (по умолчанию 20) вместе с набором параметров запроса.Контроллер справится с этим правильно и вернет список вещей, номер страницы и номер последней страницы в модели.

Но что я не знаю (так как раньше я не делал много вещей с веб-слоями)) - это то, что нужно сделать в шаблоне, чтобы пользователь мог нажать на следующую / предыдущую / страницу-3 и т. д.

Шаблон в настоящее время имеет:

<button type="submit" id="searchButton">Search</button>

Я думаю, я мог бы добавить кнопкидля каждого из действий, но как я мог тогда определить в контроллере, какая кнопка была нажата?

Cheers Paul

1 Ответ

0 голосов
/ 07 октября 2011

Вы можете добавить событие onClick для кнопок (или A HREF ссылок) в вашем шаблоне, связанных с небольшим количеством Javascript, который устанавливает значение для скрытого элемента на странице.Этот элемент (скажем, ACTION) будет содержать значение кнопки, которую вы нажали (NEXT или PREVIOUS), так что на стороне сервера контроллер может делать правильные действия в соответствии со значением ACTION.

form.elements["ACTION"].value = 'NEXT'

Или это также может быть элемент PAGE, который содержит целевой номер страницы (если вы хотите разрешить прямые ссылки на все страницы)

Так что если вы в данный моментна странице 4:

form.elements["PAGE"].value = '5' // for the 'NEXT' button
form.elements["PAGE"].value = '3' // for the 'PREVIOUS' button
...