Я прочитал много примеров нумерации страниц, и почти все из них - как Службы Отдыха. Я не нашел ни одного примера, который реализован как интерфейс веб-страницы. Так что до сих пор я узнал, как реализовать нумерацию страниц на серверной части. У меня есть подходящие методы в Controller
, Service
, Repository
, и я получаю полученные значения из базы данных (MySQL).
Мой репозиторий расширяет JpaRepository, и я реализую нумерацию страниц с помощью pageable , Ниже приведен метод в моем Controller, Service, Repository.
В классе Repository
Page<SlUrl> findAllByOrderByCreationDateDesc(Pageable pageable);
В классе Service (subtractPageByOne, потому что индекс начинается с 0, а параметр url начинается с 1)
public Page<SlUrl> getUrlsByPage(int pageNumber, int numberOfElementsPerPage) {
return urlRepository.findAllByOrderByCreationDateDesc(PageRequest.of(subtractPageByOne(pageNumber), numberOfElementsPerPage));
}
private int subtractPageByOne(int page) {
return (page < 1) ? 0 : page - 1;
}
А в классе Controller
@GetMapping("/urls")
public ModelAndView openPageableUrls(ModelAndView mv, @RequestParam(defaultValue = "0") int page) {
System.out.println("Inside /urls");
Page<SlUrl> urls = slUrlService.getUrlsByPage(page, 5);
List<SlUrl> urlList = urls.getContent();
System.out.println("Url count = " + urls.getSize()
+ " Number = " + urls.getNumber() + "");
mv.setViewName("userlinks");
for (int i = 0; i < urlList.size(); i++) {
System.out.println("\nURLs Details:"
+ "\nid = " + urlList.get(i).getId()
+ "\nid = " + urlList.get(i).getDestinationUrlLink()
+ "\nid = " + urlList.get(i).getShortUrlLink()
+ "\nid = " + urlList.get(i).getUser().getUsername());
}
return mv;
}
Вы можете видеть, что у меня есть for
l oop, чтобы показать детали SlUrl, что он работает нормально. Теперь мой вопрос заключается в том, как лучше всего показать вышеупомянутые детали в интерфейсе (JSP страница). Один из способов, которым я думаю, - передать это urlList
и использовать для каждого l oop, чтобы показать данные. Но эти данные только для примера, что если мне нужно реализовать что-то вроде блога или показать историю версий.
Итак, как лучше всего представить данные на внешнем интерфейсе. Пример кода был бы очень полезен.