А как ВЫ делаете пагинацию на страницах.

 
 
 
Сообщения:499
собссно вопрос такой: допустим таблица с парой тысяч строк. можно в принципе всю показать но мы же юзерфлендли и делаем пагинацию (ну как на форуме). Я понимаю что скажем, если через джейсон или там рест - руки развязаны делай на яваскрипте как хочешь. А если пользуем классический жсп в связке со спринг мвс?

я пробовал два варианта - отдавать "спагинированный" лист на вьюшку и информацию о номере страницы и общем количестве страниц, а потом уже в жспшке расчитывалось бы количество кнопок страниц (появлялись бы или пропадали доп кнопки типа в начало и т.п.), но делая на тегах жстл это получался ТАКОЙ Монстрище с таким нечитаемым вырвиглазным кодом, что на жсп было смотреть страшно. а если туда еще и бутстрап подмешать с его классами и особенностями разметки, то вообще ужас выходил.

Тогда я пошел по другому пути: весь этот код я перенес в дополнительный класс "пагинатор", который по двум параметрам количество страниц и текущая страница красиво формирует лист, возвращая объект "пейдж" в листе со всеми кнопками, включая вперед назад и в крайние - класс номер два. а далее в jsp я простым и единственным форычем просто раскладываю эти кнопки на странице и всё. получается как в любом форуме. вроде всё красиво и инкапсулированно, но появляется два новых класса. не знаю расточительно ли это?

а как вы делаете?
Изменен:05 авг 2015 11:24
 
 
Сообщения:798
http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=dataScroller&skin=blueSky

http://www.primefaces.org/showcase/ui/data/dataList.xhtml

Нет ничего проще, чем заблудиться в иллюзиях, нет ничего сложнее, чем освободиться от них.
Изменен:05 авг 2015 13:24
 
 
Сообщения:1339
Я всегда создавал спец. класс Пагинатор для этого, его использовал как для ajax/json запросов, так и для jsp. Я не думаю, что это расточительно - вся логика прячется в этом классе, который очень легко тестировать.

datatalks.ru - анализ данных, статистика, машинное обучение
 
 
Сообщения:499
эх. видимо, всё таки придется вникать глубже во фронтэнд с яваскриптом.. ну ясно. раз не я один так делаю значит всё же есть в этом смысл. просто, если по иерархии судить, то рисование кнопок это задача вьюшки а не контроллера..
 
 
Сообщения:1339
Я точно деталей не помню, но "кнопок" не было в моём пагинаторе, только параметры, необходимые, для того, чтобы следующую/предыдущую страницу извлечь. Собственно вьюшка уже занималась кнопками

datatalks.ru - анализ данных, статистика, машинное обучение
 
 
Сообщения:186
Смотря для чего. Если для JSF то я использую primefaces. А для остального в spring есть пагинатор.

Никакое препятствие не считать слишком большим, никакое сопротивление – слишком значительным... Ничто не должно устрашать нас, и мы должны быть убеждены в том, что только решительность и стремительный натиск могут решить дело. А. В. Суворов
 
 
Сообщения:499
что то я не нашел пагинатора в спринге. вроде только в связке со спринг дата.

я сейчас уперся в другую ситуацию. не могу понять где делать пагинацию - в яве, или на уровне дб (хибернейт) )) т.е. на дао левеле или выше. просто когда идут комплексные запросы дао получается очень громоздким. а на уровне явы пагинировать.. ну хз а если у меня там будет лист на 100 000 записей?
 
 
Сообщения:60
в wicket классный встроенный пагинатор, там только надо прикрутить офсет, хотя это конечно не причина, чтобы использовать wicket
 
 
Сообщения:186
В Spring Data. В JSF через primefaces.

Никакое препятствие не считать слишком большим, никакое сопротивление – слишком значительным... Ничто не должно устрашать нас, и мы должны быть убеждены в том, что только решительность и стремительный натиск могут решить дело. А. В. Суворов
 
 
Сообщения:11
lorenai:
что то я не нашел пагинатора в спринге. вроде только в связке со спринг дата.

я сейчас уперся в другую ситуацию. не могу понять где делать пагинацию - в яве, или на уровне дб (хибернейт) )) т.е. на дао левеле или выше. просто когда идут комплексные запросы дао получается очень громоздким. а на уровне явы пагинировать.. ну хз а если у меня там будет лист на 100 000 записей?


Очень странная фраза.
Для того чтобы сделать пагинацию тебе нужно знать количество записей и количество записей на странице.
Зачем тебе листинг?
Зачем что-то в БД нагружать?

Javascript или java, реализация плюс минус одинаковая будет, то есть это вопрос на чьей стороне рендерить, в итоге тебе нужно просто знать эти данные (количество страниц) и отрендерить так как это нужно...
 
 
Сообщения:1
А можете Код класса Пагинатора выложить?
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет