Spring Boot: постраничное отображение длинных списков (pagination)
Spring Boot Web Application (MVC): добавляем отображение длинных списков с разбивкой на страницы (pagination). Зачастую, при построении сайтов и вэб приложений нет неоходимости отображать списки элементов целиком, тем более, что список может быть очень длинным, что негативно скажется работе браузера и сервера. В такой ситуации используется постраничный вывод данных (пагинация, pagination). В Spring MVC для этого также существует решение, которое достаточно просто внедрить в любой существующий вывод списка данных из репозитория. Код из видео: https://github.com/drucoder/sweater/tree/AddPagination Для начала адаптируем наши репозиторий и контроллер для получения от клиента дополнительных аргументов в строке URL согласно официальной документации Spring документация по pagination: https://docs.spring.io/spring-data/data-commons/docs/1.6.1.RELEASE/reference/html/repositories.html#d0e785 После чего добавим на страницу вывод ссылок на все доступные страницы и оформим всё это в общей для нашего приложения стилистике Документация Bootstrap раздел pagination: https://getbootstrap.com/docs/4.1/components/pagination/ Видео про оформление интерфейса с Bootstrap: https://youtu.be/a51jGwoTNmI Часто возникает ситуация, когда при разбиении контента на страницы, мы полуаем большое количество страниц и ссылки на эти страницы также требуют много места. В такой ситуации стоит сократить вывод ссылок в пагинаторе. Диапазоны в Freemarker: https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_direct_ranges Тeрнарный оператор в Freemarker: https://freemarker.apache.org/docs/ref_builtins_boolean.html#ref_builtin_then Конкатенация массивов в Freemarker: https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_sequenceop_cat ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ➡ Твиттер: https://twitter.com/letsCodeDru ➡ Чат в Discord: https://discord.gg/xs6XxSx ➡ Группа Вконтакте: https://vk.com/letscodedru ➡ Канал в Telegram: https://t.me/letsCode_dru ➡ Чат в Telegram: https://t.me/joinchat/FeiP9xEhqHajfqhLr4z-Nw ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Поддержать проект: ➡ Patreon https://www.patreon.com/letscodedru ➡ Яндекс.Деньги https://money.yandex.ru/to/41001451675086 ➡ PayPal paypal.me/letscodedru ➡ Qiwi https://qiwi.me/letscode ➡ WebMoney/BitCoin https://funding.webmoney.ru/d/drucoder ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ➡ Ссылка на канал: https://www.youtube.com/channel/UC1g3kT0ZcSXt4_ZyJOshKJQ ➡ Ссылка на Яндекс.Дзен: https://zen.yandex.ru/media/id/5ac20956168a91ffeae449c5
Spring Boot Web Application (MVC): добавляем отображение длинных списков с разбивкой на страницы (pagination). Зачастую, при построении сайтов и вэб приложений нет неоходимости отображать списки элементов целиком, тем более, что список может быть очень длинным, что негативно скажется работе браузера и сервера. В такой ситуации используется постраничный вывод данных (пагинация, pagination). В Spring MVC для этого также существует решение, которое достаточно просто внедрить в любой существующий вывод списка данных из репозитория. Код из видео: https://github.com/drucoder/sweater/tree/AddPagination Для начала адаптируем наши репозиторий и контроллер для получения от клиента дополнительных аргументов в строке URL согласно официальной документации Spring документация по pagination: https://docs.spring.io/spring-data/data-commons/docs/1.6.1.RELEASE/reference/html/repositories.html#d0e785 После чего добавим на страницу вывод ссылок на все доступные страницы и оформим всё это в общей для нашего приложения стилистике Документация Bootstrap раздел pagination: https://getbootstrap.com/docs/4.1/components/pagination/ Видео про оформление интерфейса с Bootstrap: https://youtu.be/a51jGwoTNmI Часто возникает ситуация, когда при разбиении контента на страницы, мы полуаем большое количество страниц и ссылки на эти страницы также требуют много места. В такой ситуации стоит сократить вывод ссылок в пагинаторе. Диапазоны в Freemarker: https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_direct_ranges Тeрнарный оператор в Freemarker: https://freemarker.apache.org/docs/ref_builtins_boolean.html#ref_builtin_then Конкатенация массивов в Freemarker: https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_sequenceop_cat ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ➡ Твиттер: https://twitter.com/letsCodeDru ➡ Чат в Discord: https://discord.gg/xs6XxSx ➡ Группа Вконтакте: https://vk.com/letscodedru ➡ Канал в Telegram: https://t.me/letsCode_dru ➡ Чат в Telegram: https://t.me/joinchat/FeiP9xEhqHajfqhLr4z-Nw ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Поддержать проект: ➡ Patreon https://www.patreon.com/letscodedru ➡ Яндекс.Деньги https://money.yandex.ru/to/41001451675086 ➡ PayPal paypal.me/letscodedru ➡ Qiwi https://qiwi.me/letscode ➡ WebMoney/BitCoin https://funding.webmoney.ru/d/drucoder ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ➡ Ссылка на канал: https://www.youtube.com/channel/UC1g3kT0ZcSXt4_ZyJOshKJQ ➡ Ссылка на Яндекс.Дзен: https://zen.yandex.ru/media/id/5ac20956168a91ffeae449c5
